[백엔드] myBatis 설정 유의사항

Hyo Kyun Lee·2025년 3월 21일
0

백엔드

목록 보기
17/17

1. 개요

myBatis mapper 사용 시 bean 오류가 매번 발생하여 고생을 좀 하였는데, 이번에 오류해결을 하면서 했던 설정 방법을 남기고자 작성한다.

2. myBatis 설정 유의사항(maven 기준)

  • spring boot 버전에 맞는 myBatis spring boot starter maven dependency를 설치한다.

이 곳을 참고하도록 하자.

나의 경우 boot 3.4.3버전에 mybatis spring boot starter 3.0.4버전을 설치하였다.

  • myBatis spring boot starter 라이브러리 하나만 설치한다.

myBatis auto configuration 등 다른 라이브러리 설치 시 기존 스프링 부트가 자동적으로 componentscan, mapperscan하는 방식을 변경하는 것처럼 보인다.

myBatis spring boot starter 라이브러리만 사용하도록 하며, 단독 사용할 경우 mapperscan 및 mapper java 파일의 classpath 설정 등이 정상적으로 이루어질 것이다.

  • application.properties에서 mapper classpath와 alias package를 정확히 설정한다.

aliases package의 경우 mapper.xml에서 resultType, resultMap 설정 시 해당 경로 하위의 model(VO)를 자동으로 탐색하므로, base package 경로를 정확히 설정한다.

myBatis mapper java파일이 매핑할 mapper.xml이 존재하는 base pakcage 경로를 설정해주도록 하며, classpath에는 src/main/resources라는 기본 경로를 내재하므로 그 이후의 경로를 설정하도록 한다.
(*src/main/resources 경로는 spring boot project에서 기본적으로 인식하는 base repository인 점을 기억)

  • mapper.xml에서 해당 xml파일과 매핑할 java mapper 파일을 base package 경로를 제외하고 정확히 기재한다.

src/main/java 경로를 제외한 하위 경로를 정확히 입력하고, 상기와 같이 서로 동일한 이름으로 구성해야 관리가 용이해진다.

  • mapper.xml에서 사용하는 id값과 mapper java에서 사용하는 쿼리 및 메소드 명은 일치하도록 기재한다.

이 역시 관리 효율화를 위해 권장하는 사항으로 기억해두면 좋을 것 같다.

  • java project를 실행하는 main 하위에 Mapper, Controller가 위치하도록 구성한다.

기본적으로 main application 하위에 Mapper 파일을 구성해야 bean 초기화 및 등록, DI가 가능해진다.

특히 spring boot 3.x 이상부터는 main에서 별도의 scan 범위를 설정하지 않아도 자동적으로 하위의 bean scan이 이루어지므로, 이에 대한 구성은 걱정하지 않고 패키지 및 파일 구성만 잘하면 좋을 것이다.

  • mapper java 파일과 mapper xml 파일 명을 일치하도록 구성한다.

이 부분은 bean 생성 오류가 직접적인 관련은 없는 것처럼 보이지만, 관리효율성을 높일 수 있는 방안이라 생각하여 기록한다.

3. 참고자료

myBatis spring boot starter version - https://github.com/mybatis/spring-boot-starter/blob/master/mybatis-spring-boot-autoconfigure/src/site/markdown/index.md

0개의 댓글

관련 채용 정보