Я создал интерфейс (kotlin) и несколько подклассов.Я добавил аннотацию @Component
, чтобы Spring нашел и добавил их в ApplicationContext.Наконец, я хотел бы автоматически связать их с конструктором другого компонента, но он не работает:
interface EventTransformer<T> where T: Event { ..
@Component
class LoginEventTransformer: EventTransformer<Login> {
@Component
class FieldValueListRowMapper(transformers: List<EventTransformer<Event>>) { // autowires empty list
Если я переписываю свой интерфейс и удаляю аргумент универсального типа, все работает (см. Ниже).Можно ли как-нибудь заставить работать приведенный выше общий дизайн?Мне больше нравится сильный набор текста.
interface EventTransformer { ..
@Component
class LoginEventTransformer: EventTransformer { ..
@Component
class FieldValueListRowMapper(transformers: List<EventTransformer>) { // works