03. 스프링부트3 마이그레이션 작업 중 에러 정리

유동우·2024년 12월 19일
0

에러 정리 및 해결

목록 보기
3/3

작업 과정

  • 레거시 프로젝트에 스프링부트 버전업 + 추가 작업 진행중 에러 발생
    • Java 17
    • SpringBoot 3.2.0

이슈 내용

첫번째 에러

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

이 에러는 Spring Boot 3.x로 마이그레이션하면서 발생한 Spring Bean 설정 문제이다.
Invalid value type for attribute 'factoryBeanObjectType'은 Spring이 Bean을 생성하는 과정에서 예상치 못한 타입을 받았을 때 발생한다.


두번째 에러 (바로해결)

Could not resolve all files for configuration ':testCompileClasspath'. Could not find org.mybatis.spring.boot:mybatis-spring-boot-starter-test:2.0.2

테스트시 마이베티스 버전 업그레이드로 바로 해결
testImplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.2'


에러 원인

  1. Spring Boot 3.x + Jakarta EE 전환
    • 기존 javax.* 기반 설정이나 빈 팩토리(FactoryBean) 구현이 jakarta.*와 호환되지 않는 경우 발생할 수 있다.
  2. Spring Boot 버전 불일치
    • 프로젝트에 남아 있는 Spring Boot 2.x 의존성 또는 일부 Spring 관련 라이브러리가 3.x와 충돌할 수 있다.
  3. 라이브러리 버전 호환 문제
    • 일부 서드파티 라이브러리가 Spring Boot 3.x와 호환되지 않을 경우 문제를 일으킬 수 있다. 예를 들어 MyBatis, JPA, 또는 기타 설정들이 올바르게 마이그레이션되지 않은 경우

해결 방법

  • javax → jakarta
  • SpringSecurity 관련 deprecated 된 기능들 제거
    • WebSecurityConfig 제거 → 메서드 체이닝 방식으로 filterchaing 구성
    • 람다형식으로 구현
  • graphQL 관련 오류 발생 (REST API로도 구성이 되어있어 제거가 가능했다)
    • graphQL 의존성 주석처리 및 관련 코드들 제거
  • mybatis 버전 최신으로 업그레이드
    • 스프링부트 버전 3.2에 따른 마이베티스 버전 3.0.3

스프링부트와 마이바티스 버전 관련 이슈
Update to MyBatis Spring 3.0.3-SNAPSHOT for supporting Spring Boot 3.2 #896

회고

스프링부트 버전과 이에따른 시큐리티나, 패키지 변경 관련 이슈 해결에 대해서는 경험이 있는데 마이바티스는 써보지 않아서 생각보다 원인을 찾는데 오래 걸렸었다.

profile
효율적이고 꾸준하게

0개의 댓글