ref vs repose sur les attributs au Printemps
Je suis confus entre les ref et repose sur l'attribut au Printemps.J'ai lu le printemps doc, mais je suis encore confus.Je voudrais connaître la différence exacte entre les deux et dans ce cas, dont l'un sera utilisé.
OriginalL'auteur user1649415 | 2012-09-30
Vous devez vous connecter pour publier un commentaire.
Selon la le printemps de la documentation
Si vous avez besoin d'exprimer une dépendance sur plusieurs haricots, vous pouvez fournir une liste de haricot noms de la valeur de la "dépend" de l'attribut, avec des virgules, des espaces et des points-virgules valide tous les délimiteurs, comme suit:
Le "dépend" de l'attribut et de la propriété n'est pas seulement utilisé pour spécifier un temps d'initialisation de la dépendance, mais aussi de spécifier le correspondant de détruire la dépendance du temps (dans le cas de singleton haricots). Dépendant de haricots qui sont définis dans le "dépend" de l'attribut sera détruit d'abord avant la bean lui-même détruit. Cela vous permet donc de contrôler l'arrêt de commande.
D'autre part, pour la plupart des situations, le fait qu'un haricot est une dépendance de l'autre s'exprime par le fait que l'un bean est définie comme une propriété d'un autre. Ceci est généralement réalisé à l'élément de configuration XML de métadonnées.
que faire si je ne connais pas le bean id mais nom complet?
Ceci est très utile pour faire des haricots attendre pour bean B construction de même, si B n'est pas une propriété de A. j'ai frappé ce cas dans les essais où j'avais besoin d'un réseau de proxy à être initialisé avant d'un client, même si le client ne savait rien sur les procurations.
OriginalL'auteur Anshu
Aussi,
http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/DependsOn.html
Dépend-sur ->
Haricots sur lequel le courant de haricot dépend.
Toute haricots indiqués sont garantis d'être créé par le conteneur avant de ce bean.
Rarement utilisé dans les cas où un haricot n'est pas explicitement dépendre d'une autre par le biais des propriétés ou des arguments du constructeur, mais s'appuie plutôt sur les effets secondaires d'un autre bean initialisation.
Dans la réponse ci-dessus prévus, la déclaration ci-dessous est faux,
"Dépendant de haricots qui sont définis dans le "dépend" de l'attribut sera détruit d'abord avant la bean lui-même d'être détruit"
Le principal bean sera détruit en premier et ensuite la charge de haricots seront détruits.
Voici le résultat de mon test,
détruire de la classe principale est appelée.
Détruire la charge est appelée.
OriginalL'auteur Lyju I Edwinson
Peut-être un exemple d'une situation où dépend sur qui est nécessaire de l'aide. J'utilise du Printemps à la charge et fil de mes haricots. Voici un exemple de haricots définition:
Avis que la valeur de la propriété est une chaîne de caractères qui référence otherBeanId. En raison de la façon dont cette variable est résolu, le Printemps n'apprend pas de la dépendance, de sorte qu'il peut détruire otherBeanId puis myBean. Cela peut laisser myBean dans un état rompu pour un peu de temps.
Je peux utiliser dépend pour résoudre ce problème comme suit:
OriginalL'auteur Spina