主要有兩種方式:
一、第一種
步驟:(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);
}
}
完成,進行測試