Spring Boot 가 shiro 를 통합 한 후 @ Transactional 등 주석 이 실 효 된 문제 및 해결
2017 단어 IT
부분 전재:https://blog.csdn.net/gnail_oug/article/details/80706205
문제 설명
public class UserRealm extends AuthorizingRealm {
private static final Logger LOGGER = LoggerFactory.getLogger(UserRealm.class);
/**
* SysUserService 、
*/
@Autowired
private SysUserService sysUserService;
//
}
SysUserService 코드 는 다음 과 같 습 니 다.
@Service
public class SysUserService {
@Autowired
private SysUserMapper userMapper;
@Cacheable(cacheNames = "users", key = "'sysuser:'+#userName")
public SysUser findByUserName(String userName) {
return userMapper.findByUserName(userName);
}
}
해결 방법
UserRealm 에서 service 를 자동 으로 주입 할 때 @ Lazy 주석 지연 주입 을 추가 합 니 다. 다음 과 같 습 니 다.
public class UserRealm extends AuthorizingRealm {
private static final Logger LOGGER = LoggerFactory.getLogger(UserRealm.class);
/**
* @Lazy
*/
@Autowired
@Lazy
private SysUserService sysUserService;
/**
* @Lazy
*/
@Autowired
@Lazy
private SysPermissionService sysPermissionService;
//
}
해결 방법
orm 맵 프레임 워 크 의 Mapper 류 는 Spring 생 성 초기 화 가 아니 라 Spring 관리 에 만 맡 기 고 Spring bean 초기 화 에 영향 을 주지 않 습 니 다.
public class UserRealm extends AuthorizingRealm {
private static final Logger LOGGER = LoggerFactory.getLogger(UserRealm.class);
@Autowired
private SysUserMapper sysUserMapper;
@Autowired
private SysPermissionMapper sysPermissionMapper;
//
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
git 폴더명 변경오랜만에 git bash로 clone / push 하면서 했던 시행착오 기본적인 clone과 push방법 clone push 했던 실수 : main branch가 아닌 master branch에 push하고있었고, ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.