@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

相關文章
相關標籤/搜索