Spring 应用有不同的配置文件 WebAppInitializers
Spring App have different WebAppInitializers for profiles
我需要 运行 基于当前 spring 配置文件的不同初始化程序
即开发产品
目前我有 2 个 类 每个初始化器一个,但是当我部署应用程序时,两个都被执行,我如何根据配置文件只得到一个到 运行?
这是我在执行 env.getActiveProfiles() 时得到的当前配置文件。
Profile : dev
对于 Dev 初始化程序,它是这样的
@Profile("dev")
public class DevInitializer implements WebApplicationInitializer
{ ..}
Prod 就像 dev 但有过滤器
@Profile("prod")
public class ProdInitializer implements WebApplicationInitializer {
....
Add some Filters
}
您不需要单独的 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;
}
}
将仅为您指定的配置文件添加过滤器。
我需要 运行 基于当前 spring 配置文件的不同初始化程序
即开发产品
目前我有 2 个 类 每个初始化器一个,但是当我部署应用程序时,两个都被执行,我如何根据配置文件只得到一个到 运行?
这是我在执行 env.getActiveProfiles() 时得到的当前配置文件。
Profile : dev
对于 Dev 初始化程序,它是这样的
@Profile("dev") public class DevInitializer implements WebApplicationInitializer { ..}
Prod 就像 dev 但有过滤器
@Profile("prod") public class ProdInitializer implements WebApplicationInitializer { .... Add some Filters }
您不需要单独的 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;
}
}
将仅为您指定的配置文件添加过滤器。