• springboot配置Filter


    基本配置

    方法一:注解方式

    @Component
    @WebFilter(urlPatterns = "/*", filterName = "FirstFilter")
    public class FirstFilter implements Filter {
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            System.out.println("FirstFilter 执行");
            filterChain.doFilter(servletRequest, servletResponse);
        }
    
    }
    

    方法二:配置类

    @Configuration
    public class FilterConfig{
    
        @Bean
        public FilterRegistrationBean firstFilter() {
            FilterRegistrationBean registration = new FilterRegistrationBean(new FirstFilter());
            // 过滤器这里用/* 而不是/**,否则不生效
            registration.addUrlPatterns("/*");
            registration.setName("firstFilter");
            return registration;
        }
    }
    

    配置多个并指定顺序

    方法一:注解方式

    可以给过滤器类添加 @Order 注解,或实现 Ordered 接口,值越小优先级越高

    @Order(1)
    @Component
    @WebFilter(urlPatterns = "/*", filterName = "FirstFilter")
    public class FirstFilter implements Filter, Ordered {
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            System.out.println("FirstFilter 执行");
            filterChain.doFilter(servletRequest, servletResponse);
        }
    
        @Override
        public int getOrder() {
            return 1;
        }
    }
    

    方法二:配置类

    @Configuration
    public class FilterConfig{
        @Bean
        public FilterRegistrationBean secondFilter() {
            FilterRegistrationBean registration = new FilterRegistrationBean(new SecondFilter());
            // 过滤器这里用/* 而不是/**,否则不生效
            registration.addUrlPatterns("/*"); 
            registration.setName("secondFilter");
            registration.setOrder(2);
            return registration;
        }
    
        @Bean
        public FilterRegistrationBean firstFilter() {
            FilterRegistrationBean registration = new FilterRegistrationBean(new FirstFilter());
            registration.addUrlPatterns("/*");
            registration.setName("firstFilter");
            // 在配置类中设置顺序的方法,@Order注解不生效
            registration.setOrder(1);
            return registration;
        }
    }
    
  • 相关阅读:
    面相对象2016/4/19
    2016/4/19
    ajax2016/4/15 post与get
    iframe2016/4/12
    Hibernate报错解决Error parsing JNDI name [],Need to specify class name
    vue-router 源码解析最简版
    vue数据响应式原理
    3-箭头函数与普通函数
    2.1.7 html的处理与打包
    2.1.6 css的编译与处理 -2
  • 原文地址:https://www.cnblogs.com/liuyiyuan/p/16244330.html
Copyright © 2020-2023  润新知