博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)Springboot 中filter 注入对象
阅读量:7127 次
发布时间:2019-06-28

本文共 1578 字,大约阅读时间需要 5 分钟。

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

那么,解决方法如下:

public FilterRegistrationBean filterProxy(){   FilterRegistrationBean registrationBean = new FilterRegistrationBean();   DelegatingFilterProxy httpBasicFilter = new DelegatingFilterProxy();   registrationBean.setFilter(httpBasicFilter);   Map
m = new HashMap
(); m.put("targetBeanName","logFilter"); m.put("targetFilterLifecycle","true"); registrationBean.setInitParameters(m); List
urlPatterns = new ArrayList
(); 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();    }
View Code
 

转载地址:http://vqhel.baihongyu.com/

你可能感兴趣的文章
classes.dex文件转smali文件
查看>>
CentOS6启动过程超详解分析
查看>>
求最小公倍数简便方法
查看>>
oracle错误ora-01658的解决办法
查看>>
linux服务器宕机分析/性能瓶颈分析
查看>>
将 SLE HA 11 SP3 升级到 SLE HA 11 SP4
查看>>
jbpm:java.lang.LinkageError
查看>>
centOS 安装mp4box
查看>>
iOS中堆和栈的区别
查看>>
C语言之结构体
查看>>
linux globbing文件通配符
查看>>
Linux系统下查看命令属于哪个安装包
查看>>
C++拷贝构造函数详解
查看>>
Windows Server 2008 安装完活动目录后必要的检查
查看>>
一文为你详细讲解对象映射库【AutoMapper】所支持场景
查看>>
我的友情链接
查看>>
Mongod的复制
查看>>
Linux中find常见用法示例
查看>>
浅谈系统性能优化
查看>>
搭建Python环境与Python文件类型
查看>>