2014-07-22 79 views
0

我目前使用以下兩個文件(Web.xml & MyListener.java)來設置我的Spring配置文件。我在管理控制檯中將「MyProfile」變量值設置爲JNDI,並且一切正常。applicationcontext.xml中的彈簧配置文件設置

但我想知道是否有辦法通過applicationcontext.xml實現這一點。我可以從管理控制檯讀取JNDI值,如applicationcontext.xml中所示,但不確定Spring是否有任何方式在xml文件中設置配置文件。

在此先感謝!

的web.xml

<context-param> 
     <param-name>contextInitializerClasses</param-name> 
     <param-value>MyListener</param-value> 
    </context-param> 

public class MyListener implements ApplicationContextInitializer<ConfigurableApplicationContext> { 
    public void initialize(ConfigurableApplicationContext applicationContext) { 

     String actProfile = applicationContext.getEnvironment().getProperty("MyProfile"); 
     applicationContext.getEnvironment().setActiveProfiles(actProfile); 
    } 
} 

的applicationContext.xml

<jee:jndi-lookup id="MyProfile" jndi-name="MyProfile"/> 

回答

0

不能直接回答你的問題,但你可以通過JVM屬性中設置的配置文件:

-Dspring.profiles.active=YOUR_PROFILE_NAMES_AS_COMMA_SEPARATED_LIST 
+0

謝謝克里斯。是的,我也看到了這個選項,但是如果我們可以在applicationcontext.xml中設置它,那就太好了。 – Kgan

+0

你可能很幸運,通過使用'MethodInvokingFactoryBean'調用'java.lang.System#setProperty()'將'spring.profiles.active「作爲鍵和''作爲值。但是,我認爲一旦這個bean定義被評估,它就太晚了。 –

+0

是的,我的猜測是一樣的..它可能會遲到。但我可以嘗試一下。 – Kgan