方式一:
-
自定义过滤器实现Filter接口
public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("-----------------init-----------------"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("-----------------doFilter1-----------------"); chain.doFilter(request,response); System.out.println("-----------------doFilter2-----------------"); } @Override public void destroy() { System.out.println("-----------------destroy-----------------"); } }
-
注册自定义过滤器
@Configuration public class MyFilterConfig { @Bean public FilterRegistrationBean<MyFilter> filterRegistrationBean(){ FilterRegistrationBean<MyFilter> filterRegistrationBean = new FilterRegistrationBean<>(); filterRegistrationBean.setFilter(new MyFilter()); //设置自定义过滤器 filterRegistrationBean.addUrlPatterns("/*"); //添加过滤路径 // filterRegistrationBean.setOrder(0); //设置优先级,数值越低优先级越高 return filterRegistrationBean; } }
方式二:
-
自定义过滤器:
//@Order(0) //设置优先级,数值越低优先级越高 @WebFilter(filterName = "myFilter", urlPatterns = "/*") //过滤路径 public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("-----------------init-----------------"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("-----------------doFilter1-----------------"); chain.doFilter(request,response); System.out.println("-----------------doFilter2-----------------"); } @Override public void destroy() { System.out.println("-----------------destroy-----------------"); } }
-
在入口函数类上添加注解@ServletComponentScan:
@SpringBootApplication @ServletComponentScan public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }