主要有两种方式:
一、第一种
步骤:(1)先创建自定义filter
DefaultFilter 为本人创建的自定义过滤器。
public class DefaultFilter implements Filter{
private Logger logger = LoggerFactory.getLogger(DefaultFilter.class);
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
logger.info("Default filter!!!");
chain.doFilter(request, response);
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
}
(2) 将自定义过滤器添加到容器中
@Configuration
public class FilterConfig {
/**
* 添加自定义 filter
*
*/
@Bean
public FilterRegistrationBean<Filter> defaultFilter(){
FilterRegistrationBean<Filter> registerFilter = new FilterRegistrationBean<Filter>();
registerFilter.setFilter(new DefaultFilter()); //添加自定义过滤器
registerFilter.addUrlPatterns("/*"); //添加过滤规则
registerFilter.setName("DefaultFilterOne");
registerFilter.addInitParameter("key", "value");
registerFilter.setOrder(1);
return registerFilter;
}
}
二、第二种
步骤(1):创建自定义过滤器,并在自定义过滤器添加 @WebFilter 注解,并且配置相关参数, @Order(1)表示执行顺序,值越小,越先执行
/*
* @Order(1)表示执行顺序,值越小,越先执行
* urlPatterns 为过滤规则
* filterName 过滤器名称
* WebFilter 还有其他参数,可自行设置
*/
@Order(1)
@WebFilter(filterName="secondfilter",urlPatterns="/*")
public class SecondFilter implements Filter {
private Logger logger = LoggerFactory.getLogger(SecondFilter.class);
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
logger.info("SecondFilter!!!");
chain.doFilter(request, response);
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
}
(2)在启动类添加注解 @ServletComponentScan
@SpringBootApplication(scanBasePackages="com.test")
@ServletComponentScan
public class MongoOperateApplication {
public static void main(String[] args) {
SpringApplication.run(MongoOperateApplication.class, args);
}
}
完成,进行测试