Shiro Redis注入失败,shiro导致redis不能注入

 

================================

©copyright 蕃薯耀 2022-04-09

https://www.cnblogs.com/fanshuyao/

 

一、问题描述

在使用Shiro后,原来正常使用的Redis注入失败

 

 

二、Shiro Redis注入失败原因

经测试发现,有注入问题的Service全部被shiro的realm所依赖:

@Component
public class ShiroRealm extends AuthorizingRealm{
 
    @Resource
    private SysUserService sysUserService;
}

上面的sysUserService被ShiroRealm 依赖,导致SysUserService 类中的RedisService注入失败。

 

 

三、解决方

shiro自定义的realm中引用的service采用延迟加载策略,加上@Lazy注解。

@Component
public class ShiroRealm extends AuthorizingRealm{
 
    @Resource
    @Lazy
    private SysUserService sysUserService;
 
}

另外,Spring中,有循环依赖问题的,也可以加@Lazy注解解决

 

 

(时间宝贵,分享不易,捐赠回馈,^_^)

 

================================

©copyright 蕃薯耀 2022-04-09

https://www.cnblogs.com/fanshuyao/

相关文章

在笔者近 3 年的 Java 一线开发经历中,尤其是一些移动端、用...
这一篇文章拖了有点久,虽然在项目中使用分布式锁的频率比较...
本文梳理总结了一些 Java 互联网项目中常见的 Redis 缓存应用...
书接上回,消息通知系统(notification-system)作为一个独立...
Redis 是目前互联网后端的热门中间件之一,在许多方面都有深...
在Java Spring 项目中,数据与远程数据库的频繁交互对服务器...