shiro for example: not eligible for auto-proxying

环境

  • shiro 1.4.0
  • springboot 2.2.6
  • jdk 1.8

问题复现

在使用springboot集成shiro中,在shiro中注入userServiceImpl,会导致userServiceImpl不能被spring代理,导致事务失效。
部分代码

public class MyShiroRealm extends AuthorizingRealm {
    @Autowired
    UserService userService;
	.............

启动时的报错信息如下

Bean 'userServiceImpl' of type [cn.junengxiong.service.impl.UserServiceImpl] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

解决办法

第一种

加上 @Lazy 注解,告诉spring 懒加载此userService。

public class MyShiroRealm extends AuthorizingRealm {
    @Autowired
    @Lazy
    UserService userService;
	.............

第二种

在Realm中选择注入dao层,而不选择service层

public class MyShiroRealm extends AuthorizingRealm {
    @Autowired
    @Lazy
    UserMapper userMapper;
	.............
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章