【问题标题】:spring profile setting in applicationcontext.xmlapplicationcontext.xml 中的 spring 配置文件设置
【发布时间】:2014-07-22 21:05:56
【问题描述】:

我目前使用以下两个文件(Web.xml 和 MyListener.java)设置我的 Spring 配置文件。我在管理控制台中将“MyProfile”变量值设置为 JNDI,一切正常。

但我想知道是否有办法通过 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"/>

【问题讨论】:

    标签: spring profile environment declarative setting


    【解决方案1】:

    不是直接回答您的问题,但您可以通过 JVM 属性设置配置文件:

    -Dspring.profiles.active=YOUR_PROFILE_NAMES_AS_COMMA_SEPARATED_LIST
    

    【讨论】:

    • 谢谢克里斯。是的,我也看到了这个选项,但是如果我们可以在 applicationcontext.xml 中设置它,那就太好了。
    • 使用MethodInvokingFactoryBean 调用java.lang.System#setProperty() 并以“spring.profiles.active”作为键,&lt;ref bean="MyProfile"/&gt; 作为值,您可能会很幸运。但是我想一旦评估了这个 bean 定义就为时已晚。
    • 是的,我的猜测是一样的.. 可能已经晚了。不过我可以试试看。
    猜你喜欢
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 2014-08-15
    • 2022-08-16
    • 1970-01-01
    • 2018-10-02
    相关资源
    最近更新 更多