J'essaie d'utiliser Spring IoC avec une interface comme celle-ci :
public interface ISimpleService<T> {
void someOp(T t);
T otherOp();
}
Spring peut-il fournir un IoC basé sur l'argument de type générique T ? Je veux dire, quelque chose comme ça :
public class SpringIocTest {
@Autowired
ISimpleService<Long> longSvc;
@Autowired
ISimpleService<String> strSvc;
//...
}
Bien sûr, mon exemple ci-dessus ne fonctionne pas :
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)
Ma question : est-il possible de fournir une fonctionnalité similaire en modifiant le moins possible l'interface ou les classes d'implémentation ? Je sais par exemple que je peux utiliser @Qualifiers, mais je veux garder les choses aussi simples que possible.