반응형
이슈사항
- 해당 환경에서 Spring Mybatis v3 사용 시 Mapper Bean파일을 찾을 수 없습니다.
- 관련 build.gradle
해결방식
- Mybatis Starer팩 버전을 v2 으로 다운그레이드함
// https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter
implementation group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '2.3.1'
원인분석
- 실제로 Mybatis Interface를 구현하여 @Mapper 어노테이션을 삽입하면 Spring 에서 프록시 기능을 이용해 Mybatis 구현체를 생성해주 는 걸로 알고있으나, 해당 작업이 정상적으로 실행되지 않아 Bean NotFound 발생
- Spring에서 FactoryBean을 관리하고 등록하는 클래스인 FactoryBeanRegistrySupport 클래스에
Mybatis Spring v3 에서는 Mapper 관련 FactoryBean이 넘어오지 않음. (첨부사진은 Mybatis Spring V2)
정리
- 결국에는 MyBatis Mapper 구현체를 정상적으로 생성하지 못하거나, 구현체를 빈에 정상적으로 등록하지 못함
- Spring Boot 버전과 연관이 있는지 확인필요
- Mybatis Mapper파일은 인터페이스 파일이므로 당연히 BeanFactory에 바로 등록은 안되겠지만,
Mybatis Spring에서 해당 작업을 프록시 기능을 이용하여 진행하는것으로 알고있음 (이 과정 트러블슈팅 필요)
원인
- pom.xml에서 지정한 SpringBoot 버전이 2.6.1이여서 starter v3이 정상동작하지 않음
- 해당 라이브러리 외에도 라이브러리의 버전을 다시한번 확인해야 할듯.
Starter팩 관련 버전의 맨 앞(2)는 SpringBoot의 메이저 버전을 따라가니 참고
반응형
'DataBase' 카테고리의 다른 글
[Database]데이터베이스란? (1) | 2024.08.31 |
---|---|
[Redis]Redis Pub/Sub과 Redis Stream의 차이점 (0) | 2023.01.28 |