zoukankan      html  css  js  c++  java
  • @WebFilter注入失败

    如下//@WebFilter(urlPatterns = {"/xxx/*"}, filterName = "playerFilter")
    在使用@WebFilter注解的时候,本地测试是可以获取注入的值的,但是上线之后发现并没有获取到值.
    经过查询原来是springboot项目并没有在Tomcat下运行,当托管到Tomcat上的时候就报错了

    解决办法:
    1、注释掉@WebFilter注解,
    public class MyFilter implements Filter {
    
        @Value("${wechat.appid}")
        private String appid;
      
       //省略逻辑代码   ...
    
    }
    

     2. 重写一个配置类MyConfig,然后把自定义的过滤器类通过配置类注入@Configuration

    public class MyConfig implements WebMvcConfigurer {
     
        @Bean
        public Filter myFilter() {
            return new MyFilter();
        }
     
    /**
    * 通过
    DelegatingFilterProxy委托过滤器代理来获取前面注入的过滤器
    */
        @Bean
        public FilterRegistrationBean uploadFilterRegistration() {
            FilterRegistrationBean registration = new FilterRegistrationBean();
            registration.setFilter(new DelegatingFilterProxy("myFilter"));
            registration.addUrlPatterns("/*");
            registration.setName("myFilter");
         //registration.setOrder(1); 
        // ......
    return registration;
    }
    }

    这样就能解决过滤器注入失败的问题了

     
  • 相关阅读:
    Plug It In
    The King's Walk
    Water Testing 匹克定理
    基尔霍夫矩阵
    nginx 常用的命令
    Nginx window安装
    使用nrm管理 npm 镜像仓库
    window 安装node.js
    变量和数据类型
    同步,异步,阻塞,非阻塞
  • 原文地址:https://www.cnblogs.com/dayu007/p/15006384.html
Copyright © 2011-2022 走看看