两种方式:
-
通过注解扫描完成 Filter 组件的注册
-
通过方法完成 Filter 组件的注册
一、通过注解扫描完成 Filter 组件的注册
1. 编写Filter类
/** * SpringBoot整合Filter方式一 * * 传统方式 * <filter> * <filter-name>FirstFilter</filter-name> * <filter-class>com.linhw.demo.filter.FirstFilter</filter-class> * </filter> * * <filter-mapping> * <filter-name>FirstFilter</filter-name> * <url-pattern>/filter</url-pattern> * </filter-mapping> */ @WebFilter(filterName="FirstFilter", urlPatterns={"/filter"}) public class FirstFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { System.out.println("FirstFilter 进入......"); arg2.doFilter(arg0, arg1); System.out.println("FirstFilter 离开......"); } @Override public void destroy() { } }
2. 编写启动类
@SpringBootApplication @ServletComponentScan //扫描,并实例化类 public class App3 { public static void main(String[] args) { SpringApplication.run(App3.class, args); } }
二、通过方法完成 Filter 组件的注册
1. 编写Filter类
//区别于第一种方式,没有使用注解 public class SecondFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { System.out.println("SecondFilter 进入......"); arg2.doFilter(arg0, arg1); System.out.println("SecondFilter 离开......"); } @Override public void destroy() { } }
2. 编写启动类
@SpringBootApplication public class App4 { public static void main(String[] args) { SpringApplication.run(App4.class, args); } //使用@Bean注解将名为"getFilter"的bean加入到容器 @Bean public FilterRegistrationBean getFilter(){ FilterRegistrationBean secondFilter = new FilterRegistrationBean(new SecondFilter()); secondFilter.addUrlPatterns(new String[]{"/filter"}); return secondFilter; } }
本文详细介绍在SpringBoot中注册Filter组件的两种方法:通过注解扫描和通过方法注册。第一种方法通过@WebFilter注解定义Filter并使用@ServletComponentScan进行扫描;第二种方法则在启动类中使用@Bean注解创建FilterRegistrationBean。
1万+

被折叠的 条评论
为什么被折叠?



