Springboot整合shiro前,service里的@Cacheable、@Transactional等注解都正常使用。
整合shiro之后,UserRealm类里自动注入的service中的注解失效,比如 UserRealm 中注入了 UserService,RoleService,PermissionService。这些 Service 里的方法上的 @Cacheable 都会失效,不会缓存数据。甚至,UserServiceImpl 里注入了 CategoryService 和 CommentService,他们的方法上的注解也会失效。
如图
整合shiro之后,UserRealm类里自动注入的service中的注解失效,比如 UserRealm 中注入了 UserService,RoleService,PermissionService。这些 Service 里的方法上的 @Cacheable 都会失效,不会缓存数据。甚至,UserServiceImpl 里注入了 CategoryService 和 CommentService,他们的方法上的注解也会失效。
原因
我的理解是:因为当我们项目启动时,我们的 Realm 很早就初始化,而其依赖的 UserService 等依赖(包括它的实现里的依赖)都很早就初始化了,在设置缓存之前。解决方案
给 Realm 里的需要注入的 Bean 加上 @Lazy 注解(@Order 无效)如图
2019年11月10日 11:12:59
学习了
2019年02月14日 14:29:03
spingboot 么?