Joh*_*y19 1 spring annotations filter spring-boot
我正在尝试在弹簧过滤器链中插入(在第一个位置)一个简单的自定义Cors过滤器。
如果我这样做
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CorsFilter implements Filter {
Run Code Online (Sandbox Code Playgroud)
它运行完美,我可以通过在Spring的ServletHandler.java中放置一个断点来验证它,
chain=getFilterChain(baseRequest, target, servlet_holder);
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否不希望使用@Componenent and @Order,而是在Application上下文中定义Filter bean。如何设置过滤器的顺序?
小智 5
参见示例:在您的ServletInitializer类中:
@Bean
public FilterRegistrationBean requestLogFilter() {
final FilterRegistrationBean reg = new FilterRegistrationBean(createRequestLogFilter());
reg.addUrlPatterns("/*");
reg.setOrder(1); //defines filter execution order
return reg;
}
@Bean
public RequestLogFilter createRequestLogFilter(){
return new RequestLogFilter();
}
Run Code Online (Sandbox Code Playgroud)
我的过滤器的名称是“ requestLogFilter”
警告:不要在类Filter上使用@Component批注。
| 归档时间: |
|
| 查看次数: |
5501 次 |
| 最近记录: |