springboot常用功能(三)拦截器
srpingboot 使用拦截器
1.新建一个普通的过滤器Filter1
@Slf4j
public class Filter1 implements Filter
{
@Override
public void destroy()
{
log.debug(getClass() + " destroy");
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException
{
log.debug(getClass() + " doFilter");
arg2.doFilter(arg0, arg1);
}
@Override
public void init(FilterConfig arg0) throws ServletException
{
log.debug(getClass() + " init");
}
}
2.新建一个普通的过滤器Filter2
@Slf4j
public class Filter2 implements Filter
{
@Override
public void destroy()
{
log.debug(getClass() + " destroy");
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException
{
log.debug(getClass() + " doFilter");
arg2.doFilter(arg0, arg1);
}
@Override
public void init(FilterConfig arg0) throws ServletException
{
log.debug(getClass() + " init");
}
}
3.springboot配置过滤器,并注册过滤器
@Configuration
public class FilterConfig
{
@Bean
public FilterRegistrationBean filter1()
{
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new Filter1());
registration.addUrlPatterns("/*");
registration.addInitParameter("paramName", "paramValue");
registration.setName("filter1");
registration.setOrder(1);
return registration;
}
@Bean
public FilterRegistrationBean filter2()
{
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new Filter2());
registration.addUrlPatterns("/*");
registration.addInitParameter("paramName", "paramValue");
registration.setName("filter2");
registration.setOrder(2);
return registration;
}
}
上面配置了两个过滤器,filter1和filter2,并注册到springboot中,filter1优先级高于filter2,
所以,访问/*路径先走filter1在走filter2