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

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

     
  • 相关阅读:
    C++中pair的用法
    DFS例题:力扣200:岛屿数量
    DFS例题:力扣695:岛屿的最大面积
    DFS深度优先遍历
    java AQS源码分析
    spring实现事务原理
    java常见并发面试题目+示例代码
    java并发锁
    ThreadPoolExecutor
    线程通信
  • 原文地址:https://www.cnblogs.com/dayu007/p/15006384.html
Copyright © 2011-2022 走看看