В моем проекте есть общий базовый класс, который расширяют все клиентские классы. Здесь есть поле @Autowired, которое нужно ввести с помощью Hibernate. Все они сгруппированы вместе в другом классе, который имеет коллекцию @Autowired базового класса.
Чтобы уменьшить шаблон для клиентского кода, я пытаюсь унаследовать @Component. Поскольку @Component не делает этого по умолчанию (очевидно, он раньше делал ), я создал эту аннотацию обходного пути
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Component
@Inherited
public @interface InheritedComponent {
}
... и аннотировал базовый класс с ее помощью. Это некрасиво, но я надеялся, что это сработает. К сожалению, этого не произошло, что меня действительно смущает, поскольку @Inherited должен заставить его работать
Есть ли другой способ наследовать @Component? Или мне просто нужно сказать, что любой класс, расширяющий базовый класс, нуждается в этом шаблоне?