问题:我建立一个全局拦截器,当然,这是测试的时候建立的,我把它命名为LogFilter,它继承了Filter,web应用启动的顺序是:listener->filter->servlet,而因为项目应用了springboot,所以我们项目启动时,先初始化listener,因此注解的bean会被初始化和注入;然后再来就filter的初始化,再接着才到我们的dispathServlet的初始化,因此,当我们需要在filter里注入一个注解的bean时,就会注入失败,因为filter初始化时,注解的bean还没初始化,没法注入。

那么,解决方法如下:

public FilterRegistrationBean filterProxy(){
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
DelegatingFilterProxy httpBasicFilter = new DelegatingFilterProxy();
registrationBean.setFilter(httpBasicFilter);
Map<String,String> m = new HashMap<String,String>();
m.put("targetBeanName","logFilter");
m.put("targetFilterLifecycle","true");
registrationBean.setInitParameters(m);
List<String> urlPatterns = new ArrayList<String>();
urlPatterns.add("/*");
registrationBean.setUrlPatterns(urlPatterns);
return registrationBean;
}
这样你就可以在LogFilter里面添加@Autowired下的bean了。
public class LogFilter implements Filter {
@Autowired
@Qualifier(value="rztRabbitTemplate")
private RabbitTemplate rabbitTemplate;
@Bean
public FilterRegistrationBean securityFilter() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new DelegatingFilterProxy("SecurityFilter"));
registration.addInitParameter("targetFilterLifecycle", "true");
registration.addUrlPatterns("/*");
registration.setOrder(102);
return registration;
} @Bean(name = "SecurityFilter")
public SecurityFilter getSecurityFilter(){
return new SecurityFilter();
}
转自:http://blog.csdn.net/u013030980/article/details/55270818#comments

最新文章

  1. 无法卸载jdk的解决方法
  2. java四舍五入的取舍
  3. 12 Tips for Accurate Project Estimating
  4. asp.net MVC4 lognet4 日志
  5. vs2012 遇到 “此操作要求使用 IIS 集成管线模式。”
  6. eay ui iframe 下常问题
  7. Python爬虫第一步
  8. JUnit三分钟教程 ---- 实际应用
  9. php 图片等比缩放
  10. (转)关于BigDecimal 转化字符串toPlainString()和toString()的区别
  11. hihocoder_1014: Trie树(Trie树模板题)
  12. C#_Demo_摄像头实时_4线程人脸识别注册开发全过程
  13. pom-4.0.0.xml中心仓库
  14. 虚拟机安装的Winserver 2008 R2系统,宿主机无法ping通主机
  15. Python深度学习之安装theano(windows)
  16. [BZOJ1494]生成树计数
  17. C# 取时间段年、月、日、季度
  18. ASP.NET与.NET区别
  19. 分享一个settings.xml
  20. 【题解】洛谷P2822 [NOIP2016TG ]组合数问题 (二维前缀和+组合数)

热门文章

  1. 【gitlab】创建ssh 秘钥
  2. spring基础----&gt;spring自定义初始化(一)
  3. 【大数据系列】windows环境下搭建hadoop开发环境使用api进行基本操作
  4. Elasticsearch学习之ES节点类型以及各种节点的分工
  5. storm事务
  6. 前端开发利器 Emmet 介绍与基础语法教程
  7. Core Data 迁移与版本管理
  8. 在python pydev中使用todo标注任务
  9. Python2.7设置在shell脚本中自动补全功能的方法
  10. PAT甲1077 Kuchiguse【字符串】【暴力】【Hash】【二分】