Spring 应用有不同的配置文件 WebAppInitializers

Spring App have different WebAppInitializers for profiles

我需要 运行 基于当前 spring 配置文件的不同初始化程序

即开发产品

目前我有 2 个 类 每个初始化器一个,但是当我部署应用程序时,两个都被执行,我如何根据配置文件只得到一个到 运行?

这是我在执行 env.getActiveProfiles() 时得到的当前配置文件。

Profile : dev

您不需要单独的 webapp 初始值设定项。使用 Java 配置添加过滤器,您可以使用特定于配置文件的 @Bean 方法,或者您可以为不同的配置文件指定完全不同的配置 classes。

进行配置 class,像这样,如果您还没有:

@Configuration
public class WebConfiguration extends WebMvcConfigurerAdapter {

    // make one of these for each filter to be added in prod only
    @Profile("prod")
    @Bean 
    public FilterRegistrationBean someFilterRegistration(SomeFilter someFilter) {
        FilterRegistration registration = new FilterRegistrationBean();
        registration.setFilter(someFilter);
        registration.setName("someFilter");
        registration.setOrder(1); // order in which filter takes effect in chain
        return registration;
    }
}

将仅为您指定的配置文件添加过滤器。