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 に答える