springboot使用Filter过滤器

方法一:注解式

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;
    }

}

猜你喜欢

转载自blog.csdn.net/luxiaoruo/article/details/82463623