Не удается наследовать @Component в Spring?

В моем проекте есть общий базовый класс, который расширяют все клиентские классы. Здесь есть поле @Autowired, которое нужно ввести с помощью Hibernate. Все они сгруппированы вместе в другом классе, который имеет коллекцию @Autowired базового класса.

Чтобы уменьшить шаблон для клиентского кода, я пытаюсь унаследовать @Component. Поскольку @Component не делает этого по умолчанию (очевидно, он раньше делал ), я создал эту аннотацию обходного пути

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Component
@Inherited
public @interface InheritedComponent {
}

... и аннотировал базовый класс с ее помощью. Это некрасиво, но я надеялся, что это сработает. К сожалению, этого не произошло, что меня действительно смущает, поскольку @Inherited должен заставить его работать

Есть ли другой способ наследовать @Component? Или мне просто нужно сказать, что любой класс, расширяющий базовый класс, нуждается в этом шаблоне?

12
задан matt b 2 August 2011 в 13:37
поделиться