본문 바로가기
CODING STUDY/JAVA

[Java] SpringBoot3으로 버전 업그레이드 (API version)

by 놀고 쉬고 싶은 개발자 2024. 5. 30.

버전 업그레이드 해야 한다는 말 덕분에 해본 프로젝트 마이그레이션

 

JDK 17 이상 (11 → 17)

 

SpringBoot 3.2.5는 Java 17 이상을 요구합니다.

따라서 프로젝트에서 사용 중인 JDK 버전을 확인 후 업그레이드 해야 합니다.

/* file : build.gradle */

sourceCompatibility = '17'

 

Springframework 버전 맞추기

 

SpringBoot 버전을 2.7.9에서 3.2.5로 업그레이드

spring.dependency-management 1.0.15.RELEASE에서 1.1.4로 업그레이드했습니다.

/* file : build.gradle */

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.2.5'
	id 'io.spring.dependency-management' version '1.1.4'
}

dependency-management는 종속성 관리를 해주는 gradle 플러그인이라고 합니다!

 

SpringCloudVersion

 

클라우드 버전을 2021.0.4 → 2023.0.1로 바꿨습니다.

/* file : build.gradle */

ext {
    set('springCloudVersion', "2023.0.1")
}

 

버전 확인 방법은 https://spring.io/projects/spring-cloud#overview 접속 후 아래로 내리다 보면

이렇게 확인하실 수 있습니다

 

mybatis

 

mybatis 버전도 함께 2.3.0 -> 3.0.3로 올려줬습니다

/* file : build.gradle */

implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'

 

javax → jakarta

 

Jakarta EE 9로의 전환 (이로 인해 javax 패키지가 jakarta로 변경됨)

 

java.util.Date → java.time.Instant

 

스프링부트 3.2.5에서는 java.util.Date를 사용하는 것이 권장되지 않고  java.time.Instant를 사용하는 것이 좋다고 했습니다.

 

redis 방식

 

application.yaml에서 정의한 redis 방식이 변경되었습니다.

 

기존

/* file : application.yaml */

spring:
	redis:

이렇게 사용했다면

 

변경

/* file : application.yaml */

spring: 
	data:
    	     redis:

spring과 redis 사이에 data가 추가되었습니다

 

feign

 

feign 방식도 변경되었습니다.

 

기존

/* file : application.yaml */

feign:
  circuitbreaker:
    enabled: true
  client:
    config:
      default:
        connectTimeout: 5000
        readTimeout: 5000

 

변경

/* file : application.yaml */

spring: 
  cloud:
    openfeign:
     circuitbreaker:
       enabled: true
     client:
       config:
         default:
           connectTimeout: 5000
           readTimeout: 5000

 


스프링부트 3.2부터 매개변수의 이름을 인식하지 못하는 문제

Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.

이런 에러를 맞이할 수도 있는데 당황하시지 마시고

추가해 주시면 됩니다!