springboot整合filter
和整合servlet相同 整合filter也有两种方法
1.加@WebServlet注解 SpringBootApplication扫描例如:
@WebFilter(filterName = "firstFilter",urlPatterns = "/first") public class FirestFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("进入Filter"); filterChain.doFilter(servletRequest,servletResponse); System.out.println("离开Filter"); } } SpringBootApplication类: @SpringBootApplication @ServletComponentScan //在springboot启动时会扫描@WebServlet注解 public class SpringBoot_TestApplication { public static void main(String[] args) { SpringApplication.run(SpringBoot_TestApplication.class,args); }
}
2.通过配置类加入springioc容器
例如:
public class SecondFilter 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("进入 secondFilter"); filterChain.doFilter(servletRequest,servletResponse); System.out.println("离开 secondFilter"); } @Override public void destroy() { } }
配置类:
@Configuration public class FilterConfig { @Bean public FilterRegistrationBean getFilterRegistrationBean(){ FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean(); filterRegistrationBean.setFilter(new SecondFilter()); //filterRegistrationBean.addUrlPatterns(new String[]{"*.do","*.jsp"}); filterRegistrationBean.addUrlPatterns("/second"); return filterRegistrationBean; } }