spring boot集成shiro,配置ShiroConfig类相关继承org.apache.shiro.spring.web的类@Autowired无法注入问题

5 篇文章 0 订阅
2 篇文章 0 订阅

这个问题真的折磨我很久,在网上找了很多方法都解决不了

重新写了几个shiro相关的拦截器,也添加了@Component注解,按理说spring boot启动是bean应该会被注册到容器,可偏偏报空指针异常,开始我以为是没有扫描到,又在启动类添加@ComponentScan扫描真个包路径,还是为null,我还以为是spring boot启动时没有出示化那几个过滤器,但我测试了其他加了@Component的类是有被实例化的。

在这里插入图片描述
幸好看见了这一篇https://www.cnblogs.com/matd/p/11128179.html,我是把Shiro生命周期处理器也写在了ShiroConfig配置类。

//Shiro生命周期处理器
@Bean("lifecycleBeanPostProcessor")
    public LifecycleBeanPostProcessor injectBeanPostProcessor(){
        return new LifecycleBeanPostProcessor();
    }

如果这个配置出现在类中,那么该类的autowired都会失效。解决办法:那就分开来写!!!

shiro生命周期配置类
在这里插入图片描述
shiro主配置类,加上@AutoConfigureAfter(AppConfig.class)
在这里插入图片描述
关于这个类的描述

1.LifecycleBeanPostProcessor用于在实现了Initializable接口的Shiro bean初始化时调用Initializable接口回调,在实现了Destroyable接口的Shiro bean销毁时调用 Destroyable接口回调。如UserRealm就实现了Initializable,而DefaultSecurityManager实现了Destroyable。具体可以查看它们的继承关系。
2.保证实现了Shiro内部lifecycle函数的bean执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值