0

我们确实有一些通过 web.xml spring.profiles.active 启用的弹簧配置文件,我想保留它,因为这是我们的部署团队激活配置文件的方式。此外,我想根据属性文件的存在激活更多配置文件。所以我添加了一个 ApplicationContextInitializer

public class WecaApplicationContextInitializer implements
    ApplicationContextInitializer<ConfigurableApplicationContext>{
@Override
public void initialize(ConfigurableApplicationContext applicationContext)
{
    applicationContext.getEnvironment().addActiveProfile("someprofile");
}

但随后 spring 忽略了 spring.profiles.active 上下文参数并且不加载我的主要配置文件。

有人知道怎么做吗?

我想我可以添加一个 ServletContextListener 并向 spring.profiles.active 参数添加一个配置文件,但我认为这有点难看。

4

1 回答 1

3

你可以使用:

profiles = ac.getEnvironment().getActiveProfiles()

要获取活动配置文件,请添加到这些配置文件并传递到:

ac.getEnvironment().setActiveProfiles(profiles, "profileName")
于 2013-07-27T18:40:01.733 回答