Spring Boot添加过滤的方式
Spring Boot添加Filter有两种方式:注解和使用FilterRegistrationBean注册Bean。
方式一:注解
步骤1. 编写一个类实现javax.filter
步骤2.在该类上添加注解“WebFilter”,需要添加上过滤的参数。例如:urlPatterns = “/*”,filterName = “cy”
步骤3:在启动类上添加一个注解“@ServletComponentScan”,该注解默认扫描启动类下的包以及子包。
@WebFilter(urlPatterns = "/*",filterName = "cy")
public class TestFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("cy");
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
}
}
@ServletComponentScan
@SpringBootApplication
public class BackgroundApplication {
public static void main(String[] args) {
SpringApplication.run(BackgroundApplication.class, args);
}
}
方式二:使用FilterRegistrationBean注册Bean
步骤1.编写一个类实现javax.filter。
步骤2.在启动类下添加一个方法,方法名字任意,返回值为“FilterRegistrationBean”,在该方法上添加一个注解@Bean
@Bean
public FilterRegistrationBean filterRegistrationBean () {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new TestFilter());
registrationBean.addUrlPatterns("/*");
registrationBean.setName("cy");
return registrationBean;
}