6
votes

SUPERCLASSE DE STREST AUTOWIRITE

Pourquoi le ressort choisit-t-il automatiquement les types de superclasses lors de la mise en forme de la mise au point automatique?

Par exemple, si j'ai xxx

et une personne autobile xxx < / Pré>

Comment le printemps choisit toujours le Superype FOO ? Ce ne devrait-il pas être une cartographie " ambiguë " (et provoquer une erreur de lancer une erreur)?

Ne vous avez pas techniquement Deux FOO candidats? (E.G., la barre obtient choisie automatiquement lorsque @Component est retiré de FOO ...)


0 commentaires

3 Réponses :


3
votes

La mise en forme d'automne peut fonctionner à l'aide de nom de type et de haricot, en fonction de la manière dont vous l'avez configurée.

Dans ce cas, car il y a deux haricots de type foo , l'instance foo peut être choisie car elle correspond au nom de la variable foo .

Que se passe-t-il si vous renommez foo à quelque chose d'autre?


0 commentaires

9
votes

Ce pourrait être parce que la mise en forme d'automne est faite par nom, pas de type. Si je configurais ma bean à l'aide de XML comme ceci: xxx

et tentative d'autobile par type: xxx

i get < Pré> xxx


0 commentaires

3
votes

S'il y a deux haricots du même type, le ressort essaie de résoudre la dépendance du nom de la variable que vous avez spécifiée. Si le nom ne correspond pas à aucun des noms de haricots, il lancera une erreur. Mais, s'il trouve un nom de haricot correspondant à celui du nom de variable que vous avez spécifié, il sera injecté de ce haricot. Ainsi, lors de l'injection de dépendances, le printemps considère que le type et le nom.


0 commentaires