2012-11-08 4 views
6

Mam plik właściwości zdefiniowane w moim xml:Czy istnieje sposób, aby mieć warunki if/else w xml na wiosnę mvc3?

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="/WEB-INF/db.properties"></property>  
</bean> 

Mam właściwość w pliku:

someprop = one 

Pytanie

W moim XML Chciałbym też dodać/usuń właściwość w definicji komponentu bean. Na przykład:

<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="url" value="${jdbc.internal.url}" /> 
    <!--I want to add/remove the line below based on value in property file--> 
    <property name="username" value="${jdbc.internal.username}" /> 
</bean> 
+1

Czy mogę zamiast tego zaproponować różne pliki właściwości dla różnych środowisk. To jest "standardowy" sposób rozwiązania tego problemu. – pap

+0

, które również mogą działać. Chociaż jestem zdezorientowany, w jaki sposób zostanie ustalone, który z nich zostanie odebrany? Czy muszę skonfigurować nazwę środowiska w tomcat? Czy istnieje link, który się pogłębia? – birdy

+0

W każdym razie, ponieważ jest to XML, a nie plik właściwości. Nadal będę musiał zmienić plik xml podczas wdrażania z jednego env na drugi. – birdy

Odpowiedz

4

To może być możliwe przy użyciu SpringEL. Przeczytaj pomoc dotyczącą wyrażania do definiowania definicji komponentów bean sekcja here.

Jeśli jest to obsługiwane w wielu środowiskach, Spring 3.1 udostępnia abstrakcje bean definition profiles i Environment.

+0

Nie znalazłem tej odpowiedzi w sugerowanych przez ciebie linkach. Jak działa wyzwalanie profilu? Powiedzmy, że mam dwa profile, gdzie mogę ustawić jeden z nich jako aktywny – birdy

+0

@birdy aktywny profil można ustawić na wiele sposobów. Zobacz ten post, aby uzyskać więcej informacji http://stackoverflow.com/questions/8587489/how-to-set-active-spring-3-1-environment-profile-via-a-properites-file-and-not-v –

Powiązane problemy