IT&컴퓨터

[Spring Boot/Mybatis] 오류 해결 - java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String

푸드듥 2024. 1. 16. 09:52
반응형

1. 문제

Spring Boot와 Mybatis를 활용한 앱을 실행했더니 아래와 같은 오류가 났다.

 

java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String

 

코드에 문법 상 틀린 것은 하나도 없다. 뭐가 잘못 됐을까?

 

2. 해결

위는 Spring Boot와 Mybatis 버전이 호환되지 않아서 발생하는 오류이다.

호환되는 버전은 아래 Mybatis 깃허브 페이지에서 확인할 수 있다.

https://github.com/mybatis/spring-boot-starter/releases

 

나의 경우 Spring Boot는 3.2.1버전, Mybatis는 3.0.2버전을 사용 중이었다.

위 사이트에서 mybatis-spring-boot-3.0.2를 찾아보니 "Support Spring Boot 3.1"라고 적혀 있다.

Mybatis 3.0.2는 Spring Boot 3.1을 지원한다는 건데, 나는 Spring Boot 3.2를 쓰고 있으니 호환이 안 되는 것이다.

 

Spring Boot 3.2 버전을 지원하는 Mybatis 버전을 찾아봤다.

오늘 기준으로 최신 버전이라고 되어 있는 mybatis-spring-boot-3.0.3을 보니

"Update to MyBatis Spring 3.0.3-SNAPSHOT for supporting Spring Boot 3.2"라고 한다.

 

Mybatis 버전을 3.0.3으로 바꿔주고, 제대로 인식되도록 프로젝트 파일을 닫았다 다시 열고 앱을 실행했더니

오류가 말끔히 해결되었다!

 

// pom.xml

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.1</version>

<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
반응형