@WebFilter注入失败

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

解决办法:
一、注释掉@WebFilter注解,
public class MyFilter implements Filter {

    @Value("${wechat.appid}")
    private String appid;
  
   //省略逻辑代码   ...

}

 2. 重写一个配置类MyConfig,而后把自定义的过滤器类经过配置类注入@Configurationjava

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

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

相关文章
相关标签/搜索