解决Spring Boot集成Shiro,配置类使用Autowired无法注入Bean问题
2017-04-25 00:00
639 查看
如题,最近使用spring boot集成shiro,在shiroFilter要使用数据库动态给URL赋权限的时候,发现
注入的bean都是null,无法注入mapper。搜了半天似乎网上都没有相关问题,也是奇怪。最后发现
如果这个配置出现在类中,那么该类的autowired都会失效,解决办法:分离这个配置就好了
shiro主配置
关于这个类的描述
1.LifecycleBeanPostProcessor用于在实现了Initializable接口的Shiro bean初始化时调用Initializable接口回调,在实现了Destroyable接口的Shiro bean销毁时调用 Destroyable接口回调。如UserRealm就实现了Initializable,而DefaultSecurityManager实现了Destroyable。具体可以查看它们的继承关系。
2.保证实现了Shiro内部lifecycle函数的bean执行
看得不是很懂,应该是和shiro内部bean注入和AOP有关。
至于为何这么神奇,有待解决。
@Autowired
注入的bean都是null,无法注入mapper。搜了半天似乎网上都没有相关问题,也是奇怪。最后发现
/** * Shiro生命周期处理器 * * @return */ @Bean(name = "lifecycleBeanPostProcessor") public LifecycleBeanPostProcessor getLifecycleBeanPostProcessor() { return new LifecycleBeanPostProcessor(); }
如果这个配置出现在类中,那么该类的autowired都会失效,解决办法:分离这个配置就好了
@Configuration
public class ShiroLifecycleBeanPostProcessorConfig {
/** * Shiro生命周期处理器 * * @return */ @Bean(name = "lifecycleBeanPostProcessor") public LifecycleBeanPostProcessor getLifecycleBeanPostProcessor() { return new LifecycleBeanPostProcessor(); }
}
shiro主配置
@Configuration @AutoConfigureAfter(ShiroLifecycleBeanPostProcessorConfig.class) public class ShiroConfig { ... }
关于这个类的描述
1.LifecycleBeanPostProcessor用于在实现了Initializable接口的Shiro bean初始化时调用Initializable接口回调,在实现了Destroyable接口的Shiro bean销毁时调用 Destroyable接口回调。如UserRealm就实现了Initializable,而DefaultSecurityManager实现了Destroyable。具体可以查看它们的继承关系。
2.保证实现了Shiro内部lifecycle函数的bean执行
看得不是很懂,应该是和shiro内部bean注入和AOP有关。
至于为何这么神奇,有待解决。
相关文章推荐
- 解决SpringBoot项目使用多线程处理任务时无法通过@Autowired注入bean问题
- 解决Spring boot使用Quartz时Job中无法注入Bean 空指针异常问题
- CXF中使用Autowired注解无法注入bean的有关问题
- 因计算机磁盘硬件配置问题windows无法启动及HP系列机器不能使用GHOST的解决方法
- 解决spring boot websocket无法注入bean的问题
- Spring解决在Dao层注解配置无法注入SessionFactory的办法 实现在Dao层使用注解配置
- GNS3配置ASA解决console无法使用的问题
- 解决spring-boot 中 bean无法注入的问题
- 解决Spring+Quartz无法自动注入bean问题
- 解决spring boot websocket无法注入bean的问题
- Spring 中注入bean的properties配置文件位置问题解决
- 关于TestNG无法采用Spring注入bean的问题解决
- Spring 中注入bean的properties配置文件位置问题解决
- 关于spring boot无法自动注入bean问题解决方案
- spring mvc导致的已配置placeholder但是placeholder却无法注入的问题(使用annotation)
- hadoop搭建时配置SSH免密登陆,解决RSA无法使用问题
- 解决Spring+Quartz无法自动注入bean问题
- Quartz任务执行无法注入Bean问题解决
- 使用Spring配置shiro时,自定义Realm中属性无法使用注解注入解决办法
- 解决thinkphp配置中,项目目录不可写,目录无法自动生成! 请使用项目生成器或者手动生成项目目录~问题