오늘은 저번에 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으로 마이그레이션 해 보지는 못했습니다만 그 방법도 궁금하긴 하네요
'IT > SPRING BOOT' 카테고리의 다른 글
Springboot 3.0에 변화에 대해 알아보자 (1) | 2023.04.17 |
---|---|
Spring Component Scan에 대해 알아보자 (0) | 2023.04.15 |
Entity VO DTO에 대해 알아보자 (0) | 2023.04.13 |
Spring Security Authenticate에 대해 알아보자 (0) | 2023.04.10 |
Spring boot AOP에 대해 알아보자 (0) | 2023.04.08 |