SpringBoot自定義過濾器filter
阿新 • • 發佈:2018-12-20
主要有兩種方式:
一、第一種
步驟:(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);
}
}
完成,進行測試