SpringBoot自定义Filter
1 自定义Filter通过FilterRegistrationBean 类来注入
自定义Filter
public class Filter2 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println(" 进入 filter2 ..");
chain.doFilter(request,response);
}
@Override
public void destroy() {
}
}
注入
@Configuration
public class config {
@Bean
public FilterRegistrationBean MyFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new Filter2());
registration.addUrlPatterns("/*");
registration.addInitParameter("paramName", "paramValue");//添加默认参数
registration.setName("Filter2");
registration.setOrder(1);//先后顺序
return registration;
}
}
2 自定义Filter通过 实现接口 Filter方法
自定义Filter
@WebFilter(urlPatterns = "/*")
public class Filter1 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println(" 进入 filter1 ..");
chain.doFilter(request,response);
}
@Override
public void destroy() {
}
}
主方法上添加注解扫描
@ServletComponentScan("com.example.demo.filter") //扫描Filter
结果(Filtte2 设置了优先级 所以在前)