方法一:注解式
1、创建Filter过滤器:javax.servlet.Filter
@WebFilter(urlPatterns = "/*")// 声明过滤器
public class HttpServletFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, response);
}
@Override
public void destroy() {}
}
2、Application启动类加注@ServletComponentScan
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@ImportResource("classpath:spring-context.xml")
@EnableAutoConfiguration
@Configuration
@EnableDiscoveryClient
@ServletComponentScan
public class Application {
public static void main(String[] args) {
System.setProperty("DEPLOY_ENV", "test");
SpringApplication.run(Application.class, args);
}
}
方法二:声明式
1、创建过滤器:同方法一的1,不需要@WebFilter(urlPatterns = "/*")
2、在Application中声明过滤器
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@ImportResource("classpath:spring-context.xml")
@EnableAutoConfiguration
@Configuration
@EnableDiscoveryClient
@ServletComponentScan
public class Application {
public static void main(String[] args) {
System.setProperty("DEPLOY_ENV", "test");
SpringApplication.run(Application.class, args);
}
@Bean
public FilterRegistrationBean setFilter() {
FilterRegistrationBean filterBean = new FilterRegistrationBean();
filterBean.setFilter(new HttpServletFilter());
filterBean.setName("HttpServletFilter");
filterBean.addUrlPatterns("/*");
return filterBean;
}
}