2010-11-22 12 views

Antwort

5

Environment-Profile/Environment-spezifische Beans werden in Spring 3.1 verfügbar sein, das in Kürze veröffentlicht werden sollte - also sollten Sie darauf warten.

Es gibt keine integrierte Unterstützung für bedingte Beans in Frühling 3.0. Dies könnte jedoch mithilfe von PropertyPlaceholderConfigurers und/oder FactoryBeans erreicht werden.

0

es ist nicht eine Frage der Spel verwenden, aber mehr von XML, afaik Sie diese in XML nicht tun können (aber Xslt)

die richtige Feder Art und Weise für dieses Szenario könnte mit einem http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-class in Kombination sein " Eltern“Schnittstelle für Beana und BeanB

könnten Sie die Parameter (System? Runtime-spezifisch?) passieren in die Fabrik, die entweder Beana oder BeanB

2

Es gibt keinen bedingten Mechanismus für XML-Spring-Bean defintion-Dateien erstellen würde. Aber vielleicht würde diese Arbeit:

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

Aber auch wenn dieser Ansatz funktioniert, wäre es nicht das lesbar sein. Mein Vorschlag wäre, verschiedene XML-Konfigurationsdateien zu verwenden und sie abhängig von einigen globalen Einstellungen auszuwählen. Natürlich würden Sie alle gemeinsamen Beans (d. H. Diese, deren Definition immer gleich ist) in eine separate Datei schreiben und sie immer enthalten.

+0

Ich war wirklich begeistert, dies zu sehen, aber nicht arbeite überhaupt mit "-Dcommand.line.property = development", das in der Java-Befehlszeile definiert ist. –

+0

Leider können Sie SpEL nicht in einem Klassenattribut verwenden. – vpiTriumph

Verwandte Themen