conditionnel à l'aide de fèves de printemps
Je suis en train d'écrire un ValidatorFactory
qui va me donner un programme de validation en fonction de son type
public Validator getNewValidator(ValidatorType type){
switch:
case a : new Validator1();
break;
case b : new Validator2();
break;
}
Je veux écrire à l'aide de printemps xml haricots définition
Je peux utiliser la méthode de l'injection, mais il me permettra de ne créer qu'un seul objet et la méthode ne
ne prend aucun argument.
Je ne veux pas utiliser FactoryBean
.. je suis juste à la recherche de savoir si nous pouvons faire cela en utilisant le printemps xml
bean définition.
pourquoi ne pas vous souhaitez utiliser l'interface factorybean?
il n'y a pas de raison en tant que tel ..je veux juste savoir peut est-il un moyen de créer conditionnelle haricots..juste par curiosité
C'est exactement ce que
Je suis juste à la recherche d'une réponse, est-il possible de le faire à l'aide de printemps xml bean définition
il n'y a pas de raison en tant que tel ..je veux juste savoir peut est-il un moyen de créer conditionnelle haricots..juste par curiosité
C'est exactement ce que
FactoryBean
est pour. Ne vous battez pas 🙂Je suis juste à la recherche d'une réponse, est-il possible de le faire à l'aide de printemps xml bean définition
OriginalL'auteur Shekhar | 2010-06-29
Vous devez vous connecter pour publier un commentaire.
vous pouvez faire conditionnelle bean injection avec du xml. Le "ref" attribut peut être déclenchée par des valeurs de propriété à partir d'un fichier de propriété, et donc de créer conditionnelle haricots en fonction des valeurs de propriété. Cette fonction n'est pas documentée, mais il fonctionne parfaitement.
Et le contenu de la propriété fichier:
validatorType=validatorTypeOne
Pour utiliser le fichier de propriétés dans votre xml, il suffit d'ajouter ce contexte, sur le haut de votre printemps config
validatorType=validatorTypeOne est le contenu dans un fichier de propriété et de la syntaxe ${validatorType} élargi à la valeur de la propriété qui est dans ce cas: validatorTypeOne. Comme cela souligne un bean id de référence une instance de la classe Validator1 est créée et affectée à la propriété dans ValidatorFactory. Got it?
Non, je suis un peu embrouiller sur la déclaration validatorType=validatorTypeOne. Que faire si j'ai besoin d'elle pour être validatorTypeTwo? Et aussi j'ai une erreur de syntaxe sur ref="${validatorType}". J'ai besoin d'une référence sur cette ref chose afin que je puisse comprendre clairement.
Méfiez-vous d'essayer cela avec toute les haricots que l'utilisation SmartLifecycle. Voir ce thread pour plus de détails.
OriginalL'auteur guido
Pour les cas complexes (plus complexe que celui exposé), Printemps JavaConfig pourrait être votre ami.
OriginalL'auteur jplandrain
Si vous utilisez l'annotation (
@Autowired
,@Qualifier
etc) au lieu de xml, vous n'êtes pas en mesure de conditionner les fèves de travail (au moins au courant de la version 3). Cela est dû à @Qualificatif ne pas soutien à l'expressionPlus d'informations sur https://stackoverflow.com/a/7813228/418439
OriginalL'auteur Lee Chee Kiam
J'ai eu une des exigences légèrement différentes. Dans mon cas, je voulais avoir codé mot de passe dans la production, mais en texte brut dans le développement. Aussi, je n'ai pas accès aux parent de haricots
parentEncoder
. C'est comment j'ai réussi à obtenir que:Bien sûr, j'ai défini
password.encoding
dans un fichier de propriétés avec des valeurs possibles quesha
ouplainText
.OriginalL'auteur SHOJAEI BAGHINI
Vous devriez être en mesure de le faire:
Bien sûr, il utilise automatiquement configuré
FactoryBean
en dessous, mais vous éviter toute Ressort de la dépendance dans votre code.OriginalL'auteur gpeche