方法一
@Component
@Order(value = 1)
@Slf4j
public class DokbokSessionFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
log.error("经过过滤器-1");
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
log.error("过滤器初始化");
}
@Override
public void destroy() {
log.error("过滤器销毁");
}
}
- @Component 在spring容器中注册该filter
- @Order(value = 1) 多个过滤器的过滤顺序
- 这种方法只能拦截所有的URL,相当于【/】
方法二
这种方法可以定制每个filter可以拦截的url。
1、定义filter
@Slf4j
public class DokbokSessionFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
log.error("经过过滤器-1");
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
log.error("过滤器初始化");
}
@Override
public void destroy() {
log.error("过滤器销毁");
}
}
2、定义Configuration
@Configuration
public class SessionConfiguration {
@Bean
public FilterRegistrationBean<Filter> filterRegistrationBean(){
FilterRegistrationBean<Filter> registrationBean =
new FilterRegistrationBean<>();
DokbokSessionFilter sessionFilter = new DokbokSessionFilter();
registrationBean.setFilter(sessionFilter);
registrationBean.addUrlPatterns("/provider/*");
registrationBean.setOrder(1);
return registrationBean;
}
}