================================
©Copyright 蕃薯耀 2022-04-09
一、问题描述
在使用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