본문 바로가기

IT/SPRING BOOT

SpringBoot 2.7.5 To 3.0.1로 마이그레이션 하기

오늘은 저번에 SpringBoot 3.0에 대해 알아보고 실제 마이그레이션 하는 것을 한번 알아 보겠습니다.

 

Java로 된 프로젝트는 Spring.io에 마이그레이션 가이드를 보면서 SBM방식대로 진행하면 되겠습니다만 저는 Kotlin이라 그렇게는 진행하지 못하고 그냥 수동으로 진행하겠습니다.

프로젝트 환경

  • 스프링 2.7.5
  • Mysql 8.x
  • Kotlin 1.7.22
  • Java11

1. buildgradle.kts 변경

build.gradle.kts파일

이전

plugins {
    id("org.springframework.boot") version "2.7.5"
    id("io.spring.dependency-management") version "1.1.0"
    kotlin("jvm") version "1.7.22"
    kotlin("plugin.spring") version "1.7.22"
    kotlin("plugin.jpa") version "1.7.22"
    kotlin("plugin.allopen") version "1.7.22"
    kotlin("plugin.noarg") version "1.7.22"
    kotlin("kapt") version "1.7.22"
}

java.sourceCompatibility = JavaVersion.VERSION_11

allOpen {
    annotation("javax.persistence.Entity")
}

noArg {
    annotation("javax.persistence.Entity")
}

변경

plugins {
    id("org.springframework.boot") version "3.0.1"
    id("io.spring.dependency-management") version "1.1.0"
    kotlin("jvm") version "1.7.22"
    kotlin("plugin.spring") version "1.7.22"
    kotlin("plugin.jpa") version "1.7.22"
    kotlin("plugin.allopen") version "1.7.22"
    kotlin("plugin.noarg") version "1.7.22"
    kotlin("kapt") version "1.7.22"
}

java.sourceCompatibility = JavaVersion.VERSION_17

allOpen {
    annotation("jakarta.persistence.Entity")
}

noArg {
    annotation("jakarta.persistence.Entity")
}

dependencies {
  implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta")
}

tasks.withType<KotlinCompile> {
    kotlinOptions {
        freeCompilerArgs = listOf("-Xjsr305=strict")
        jvmTarget = "17"
    }
}

application.yml

  jpa:
    database: mysql
    database-platform: org.hibernate.dialect.MySQLDialect
    properties:
      hibernate:
        show_sql: true
        format_sql: true

기존 : org.hibernate.dialect.MySQL5Dialect

변경 : org.hibernate.dialect.MySQLDialect

2. Project SDK 변경

SDK 17로 변경해 줍니다. 필수입니다.

3. javax패키지명 jakarta로 변경

IntelliJ기준으로 설명 드리자면

Java EE to Jakarta EE 를 선택해줍니다.

Run을 선택해 줍니다.


변경할 파일을 확인하시고 Do Refactor를 실행해 줍니다.

간혹 자동 변경이 안되실수도 있는데 그럴 경우 직접 변경 해주셔야 합니다.

변경할 패키지를 수동으로 추가해 줄수도 있습니다.

이렇게 하시면 이제 다 변경되었습니다. 아 그리고 혹시 Security 설정이 이전 설정이시라면 3.0기준으로 변경하셔야 합니다.

그리고 프로젝트를 실행해 보시면 되겠습니다.

정리

오늘은 스프링 2.7.5를 스프링 3.0.1로 마이그레이션 하는 법을 알아보았습니다.

저는 Kotlin이라 SBM으로 마이그레이션 해 보지는 못했습니다만 그 방법도 궁금하긴 하네요