https://blog.csdn.net/tyyytcj/article/details/73742000
需求:在SpringBoot实现拦截器,并且需要自定义的filter类型自动装配一些对象
自定义的过滤器类
public class SessionExpireFilter implements Filter{
@Autowired
private StringRedisTemplate redisTemplate;
@Autowired
private MyCampuso2oConfig myCampuso2oConfig;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
重点是变量自动配置类
@Configuration
public class MyFilter {
@Bean
public FilterRegistrationBean sessionExpireFilter(){
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(this.SessionExpireFilter());
registrationBean.addUrlPatterns("/*");
return registrationBean;
}
@Bean
public Filter SessionExpireFilter() {
return new SessionExpireFilter();
}
}
通过以上配置在SessionExpireFilter 中通过自动装配获取的对象是成功的获取到的。
如果我把 registrationBean.setFilter(this.SessionExpireFilter());改为
registrationBean.setFilter(new SessionExpireFilter());那么获取Autowried的对象为null,
具体原因尚未了解?