J'essaie de lier automatiquement la liste des interfaces ainsi:liste Autowiring des composants au printemps 4
@Autowired
private List<SomeInterface<SomeAbstractClass>> list;
Ceci est mon interface et classe abstraite:
public interface SomeInterface<T extends SomeAbstractClass>
public abstract class SomeAbstractClass implements Serializable
Ce sont mes composants (ils devrait se retrouver dans la liste):
@Component("componentA")
public class ImplementationA implements SomeAbstractClass<ClassAImpementingSomeAbstractClass>
@Component("componentB")
public class ImplementationB implements SomeAbstractClass<ClassBImpementingSomeAbstractClass>
Et la mise en œuvre de la classe abstraite sont DÉFINIES comme ceci:
public class ClassAImpementingSomeAbstractClass extends SomeAbstractClass
public class ClassBImpementingSomeAbstractClass extends SomeAbstractClass
Le problème est survenu après la migration du ressort de 3.2.5 à 4.3.11. Au printemps 3, je reçois la liste qui ont ImplementationA et ImplementationB. Après avoir déménagé à ressort 4 Je reçois exception au cours du déploiement:
org.springframework.beans.factory.NoSuchBeanDefinitionException: Aucun haricot de qualification de type 'java.util.List < UneInterface < SomeAbstractClass >>' disponible: attendu au moins 1 haricot qui se qualifie comme candidat autowire. Dépendance annotations: {@ org.springframework.beans.factory.annotation.Autowired (requis = true)}
La question est pourquoi le printemps essaie de trouver le haricot de la liste de typ? Ne devrait-il pas essayer de trouver tous les haricots de type SomeInterface et les ajouter à la liste (exactement ce que j'ai au printemps 3)?
Merci pour vos suggestions!