【发布时间】:2016-12-19 14:38:10
【问题描述】:
我有一个公开休息服务的 Spring Boot Web 应用程序。
我在问自己如何正确管理过滤器上的配置文件。 实际上,我的应用有 2 个配置文件:dev 和 prod(你猜它代表什么......)
在 prod 模式下,我要激活的过滤器比在 dev 模式下要多。
我的过滤器配置类如下:
@Configuration
public class FiltersConfig {
@Bean
public FilterRegistrationBean filterRegistrationBean(CompositeFilter compositeFilter){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setDispatcherTypes(EnumSet.allOf(DispatcherType.class));
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.setFilter(compositeFilter);
return filterRegistrationBean;
}
@Bean
@Profile("dev")
public CompositeFilter devCompositeFilter(){
CompositeFilter compositeFilter = new CompositeFilter();
List<Filter> filtersList = new ArrayList<>();
//filtersList.add(filter1());
compositeFilter.setFilters(filtersList);
return compositeFilter;
}
@Bean
@Profile("prod")
public CompositeFilter prodCompositeFilter(){
CompositeFilter compositeFilter = new CompositeFilter();
List<Filter> filtersList = new ArrayList<>();
//filtersList.add(filter1());
compositeFilter.setFilters(filtersList);
return compositeFilter;
}
}
我的问题是:
- 在方法上添加@Profile 是一种好习惯吗?
- 有没有办法强制编译器排除使用与当前设置不同的配置文件注释的类、方法等? (我不希望我的生产 jar/war 填充不必要的代码!)
- spring boot 是否提供了一种更清晰的方式来组织配置文件?
谢谢。
【问题讨论】:
标签: java spring maven spring-boot spring-profiles