在使用@Webfilter注解Filter的情況下,不上外部tomcat時是沒有問題的。但是在tomcat下運行時,filter中注入的bean就都是null
解決辦法:
一:去掉@Webfilter注解
public class GeneralFilter implements Filter { @Autowired private SettingRemote settingRemote; //注入 .... }
二: 新增一個配置類,用來手工創建filter的bean
@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Bean public Filter generalFilter() { return new GeneralFilter(); } @Bean public FilterRegistrationBean uploadFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(new DelegatingFilterProxy("generalFilter")); registration.addUrlPatterns("/*"); registration.setName("generalFilter"); registration.setOrder(1); return registration; } }
之后注入的業務bean就不會是null