Spring——Filter过滤器注入Bean时注入失败[NULL]
问题描述
Spring
中Filter注入Bean
时注入失败,Bean
一直为空。
@Slf4j
@Component
public class RestAuthFilter extends FormAuthenticationFilter {//实际注入为null@AutowiredMobileDeviceService mobileDeviceService;@AutowiredUserService userService;...
}
问题分析
Spring中,web应用启动的顺序是:listener->filter->servlet.
先初始化listener,然后再来就filter的初始化,再接着才到我们的dispathServlet的初始化,
因此,当我们需要在filter里注入一个注解的bean时,就会注入失败,
因为filter初始化时,注解的bean还没初始化,没法注入。
解决方案
方法一:工具类手动注入
Spring注入工具类参考:https://shentuzhigang.blog.csdn.net/article/details/104735859
方法二:工具类手动注入优化
https://www.liangzl.com/get-article-detail-158316.html
方法三:构造加载
1、自定义的SecurityMetadataSource配置部分,使用构造加载
<beans:bean id="mySecurityMetadataSource" class="app_security.MyInvocationSecurityMetadataSource"> <beans:constructor-arg><beans:ref bean="resourceDao"/></beans:constructor-arg>
</beans:bean>
<beans:bean id="resourceDao" class="com.ipi.tyr.module.resourceModule.dao.impl.ResourceDaoImpl"></beans:bean>
2、在自定义的securityMetadataSource类
private ResourceDao resourceDao;
public MyInvocationSecurityMetadataSource(ResourceDao resourceDao) { this.resourceDao = resourceDao; loadResourceDefine();
}
参考文章
https://blog.csdn.net/hehuanchun0311/article/details/80513558
https://www.iteye.com/blog/awaitdeng-1040020
https://www.cnblogs.com/happyflyingpig/p/7998449.html
https://bbs.csdn.net/topics/390545490
https://www.liangzl.com/get-article-detail-158316.html
Spring——Filter过滤器注入Bean时注入失败[NULL]相关推荐
- Spring~用注解读取bean(属性注入、构造方法注入、set注入)
文章目录 注解@Autowired. 属性注入 Setter注入 构造方法注入 三种注入的优缺点 注解@Resource. 1.属性注入 2.构造方法注入 @Resource与@Autowired区别 ...
- Spring学习笔记-构造和Set方法注入Bean及集合和null值的注入
目录 理论 代码及演示 理论 注入Bean:可以通过构造方法注入Bean,通过Set方法注入Bean: 集合类型有:List.Set.Map.Properties: 以及特殊的null值的注入: 通过 ...
- Spring在多线程中bean的注入问题
Spring 在多线程中,bean的注入问题 使用SSM框架,在Service层需要另开一个线程,在线程中使用@Resource或者@Autowired注入全部为NULL, @Component pu ...
- springboot 在线程中注入bean,解决注入bean为null的问题
解决问题: 在我们开发过程中总会遇到比如在线程中需要代用service或者mapper等读取数据库,或者某些自动注入bean失效的情况 问题分析: 在线程中因为线程是安全的,所以是无法自动注入bean ...
- Spring Filter过滤器,Spring拦截未登录用户权限限制
实现的功能:判断用户是否已登录,未登录用户禁止访问任何页面或action,自动跳转到登录页面. 比较好的做法是不管什么人都不能直接访问jsp页面,要访问就通过action,这样就变成了一个实实在在的权 ...
- (Activiti6.0.0)SpringProcessEngineConfiguration配置bean时属性注入不了,问题已经找到
SpringProcessEngineConfiguration配置bean时属性注入不了 我用Spring搭建了个activiti的项目,但是在配置 org.activiti.spring.Spri ...
- Spring Bean 的注入方式
DI 注入 一. 传统的注入方式 通过bean标签方式注入 通过包扫描的方式注入 二. 注解方式配置注入 @Configuration 与 @Bean 注解方式注入 @ComponentScan 包扫 ...
- Spring 依赖注入(二、注入参数)
注入参数基本分7类: 1.基本类型值 2.注入bean 3.内部bean 4.注入null值 5.级联属性 6.List,Set,Map集合的注入 7.properties文件的注入(和集合注入基本是 ...
- Spring注解驱动开发第11讲——面试官让我说说:如何使用FactoryBean向Spring容器中注册bean?
写在前面 经过前面的学习,我们知道可以通过多种方式向Spring容器中注册bean.可以使用@Configuration注解结合@Bean注解向Spring容器中注册bean:可以按照条件向Sprin ...
最新文章
- [转载]Surging 分布式微服务框架使用入门
- [转]oracle 存储过程的基本语法 及注意事项
- easyui-layout中的收缩层无法显示标题问题解决
- Nginx+PHP7 安装及配置
- ora-01017 invalid username/password logon denied
- 组件通信-父组件为子组件传递数据-静态数据//动态数据 // 数据校验
- 季节性的分析才不简单,小心不要在随机数据中也分析出季节性...
- 百度AI城市又搞事情!一天三场签约 上海市民要全面迎来AI了
- define定义的函数如何引用_3分钟短文:Laravel 编程中优雅地添加定义常量
- java连接oracle jdbc连接
- 航模模拟器(加密狗)
- 金蝶k3服务器系统要求,金蝶K3服务器安装及其相关要求[精选].doc
- 新浪pop服务器无响应,新浪 – Pop's Blog
- 哈佛大学幸福课笔记一
- prometheus + grafana 对 springboot 项目进行监控
- 凡走过必留下痕迹|2019年个人总结
- 【ES6基础】Map与WeakMap
- 基于winform的GIS离线地图
- java swing写的双色球摇奖机
- 视频教程-商超收银软件排队挂单取单编程思路教程-其他