2010-11-22 45 views

Répondre

5

Les profils d'environnement/haricots spécifiques à l'environnement seront disponibles au printemps 3.1, qui devrait être publié sous peu - vous devriez donc attendre.

Il n'y a pas de support intégré pour les beans conditionnels dans Spring 3.0. Cependant, il pourrait être réalisé en utilisant PropertyPlaceholderConfigurers et/ou FactoryBeans.

0

ce n'est pas une question de l'utilisation Spel, mais plus de XML, autant que je sache, vous ne pouvez pas le faire en XML (mais xslt)

la voie du printemps approprié pour ce scénario pourrait être http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-class en combinaison avec un " parent » interface pour Beana et BeanB

vous pouvez passer le paramètre (système? exécution spécifique?) à l'usine, ce qui créerait soit Beana ou BeanB

2

Il n'y a aucun mécanisme conditionnel pour les fichiers défintion de haricots XML de printemps. Cependant, peut-être cela fonctionnerait:

<bean class="#{prop=='a' ? BeanA : BeanB}"/> 

Mais même si cette approche a fonctionné, ce ne serait pas le plus facile à lire. Ma suggestion serait d'utiliser un ensemble différent de fichiers de configuration XML et de les choisir en fonction de certains paramètres globaux. Naturellement vous mettriez tous les haricots communs (c'est-à-dire ceux dont la définition est toujours la même) dans un fichier séparé et l'auriez toujours inclus.

+0

J'étais vraiment emballé de voir cela, mais ne fonctionne pas travailler du tout avec "-Dcommand.line.property = development" défini sur la ligne de commande java. –

+0

Malheureusement, vous ne pouvez pas utiliser SpEL dans un attribut de classe. – vpiTriumph