Printemps - utilisation des alias de noms de vs
J'ai des doutes sur l'utilisation de l'alias. Je ne comprends ce qu'alias est et comment il est utilisé, mais je ne vois pas comment il peut en être autrement que d'utiliser des noms sur un haricot définition.
<bean id="xyx" name="abc,def" .. />
<alias name="xyx" alias="pqr"/>
Pourquoi l'alias lorsque je peux utiliser abc ou def?
Vous devez vous connecter pour publier un commentaire.
Dans mon esprit bean aliasing peuvent être utiles dans les grands, où l'on ne peut pas manipuler bean noms. Vous avez l'option de créer votre propre nom (alias) spécifique pour votre partie du système...
de Printemps de la documentation (3.0.x)
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/htmlsingle/
par conséquent, de la création de plusieurs noms ou/et l'aliasing sont la même chose.
<bean name="id1">
danscontext1.xml
et vous ne pouvez pas le modifier. Puis danscontext2.xml
, vous utilisez<import resource="classpath:context1.xml" />
et danscontext2.xml
vous souhaitez réutiliser beanid1
mais sous un nom différent, vous avez besoin de la<alias>
balise parce que vous ne pouvez pas modifier lename
attribut du beanid1
. L'espoir qui fait sens.Un cas d'utilisation peut-être lorsque vous souhaitez personnaliser des haricots qui sont déjà définis quelque part dans une application modulaire (chaque module est un projet pour le printemps par exemple), le haricot peut être définie par un tiers d'un cadre de l'API, ou même de votre équipe. Dans ce cas, vous voulez que seulement à l'intérieur de votre projet pour le printemps appeler la version personnalisée sans altérer les autres modules (projets), pour ce faire il suffit d'ajouter les alias dans votre configuration spring qui est en effet une fonctionnalité puissante:
Par conséquent, chaque fois que le printemps de trouver un appel à la globalBeanService, il va injecter customizedBeanService pour vous à l'intérieur de votre module spécifique.
Sans cette fonctionnalité, vous devez passer par toutes les classes et de modifier la fève à la main!!
Un alias de haricots auront toujours priorité plus élevée sur un non-alias l'un, et dans ce cas d'avoir différentes fèves avec le même alias, alors le dernier déclaré auront la priorité. En d'autres termes, l'alias bean remplacer le non-alias haricots.
Cela peut être particulièrement utile lors de la création de grands projets ou lorsque vous créez une extension de votre projet et vous ne voulez pas toucher à l'original bean définition.
Alias a un scénario à l'aide de lequel de multiples noms n'ont pas:
Imaginer de multiples config xml fichiers dans votre projet, dont la plupart sont créés par vos collègues, et vous devez ajouter votre propre config.xml fichier. L'aide que vous serez en mesure de vous référer à un haricot définie dans un autre fichier de configuration avec un nom différent, c'est peut-être plus de sens à votre config, sans avoir à toucher vos collègues des fichiers de configuration.
J'ai récemment trouvé un autre cas d'utilisation où alias facilement résolu un problème.
Lors de la configuration automatique est active, le Printemps de Démarrage fournit le haricot
serverProperties
qui peut être utilisé pour accéder à des informations sur le serveur actuellement en cours d'exécution de l'application web.Dans les tests d'intégration (c'est à dire quand
@SpringBootTest
annotation est présente) de la même bean est disponible sous le nom deorg.springframework.boot.autoconfigure.web.ServerProperties
.Bien sûr, il est possible d'utiliser un profil différent pour les tests d'intégration, mais cela nécessiterait le changement manuel de configuration à plusieurs endroits. Cependant, en ajoutant simplement
les mêmes fichiers de configuration peut être utilisé pour les tests d'intégration et de production.
Ce peut-être un bug au Printemps de Démarrage, cependant alias facilement résoudre le problème sans attendre une nouvelle version. Et très certainement, je n'ai pas de possibilité de modifier la configuration de Démarrage de moi-même.