Я пытаюсь использовать Spring IoC с таким интерфейсом:
public interface ISimpleService<T> {
void someOp(T t);
T otherOp();
}
Может ли Spring предоставлять IoC на основе аргумента типового типа T? Я имею в виду, что-то вроде этого:
public class SpringIocTest {
@Autowired
ISimpleService<Long> longSvc;
@Autowired
ISimpleService<String> strSvc;
//...
}
Конечно, мой пример выше не работает:
expected single matching bean but found 2: [serviceLong, serviceString]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessAfterInstantiation(AutowiredAnnotationBeanPostProcessor.java:243)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:957)
Мой вопрос: возможно ли предоставить аналогичную функциональность с минимальными изменениями для интерфейса или классов реализации? Я знаю, например, я могу использовать @Qualifiers, но я хочу, чтобы все было как можно проще.