개발/Java,Spring

Spring Boot 2.x에서 3.x로 업데이트

호돌맨 2023. 4. 4. 21:06

자바 17 이상으로 변경

asdf 또는 sdkman 등으로 java 17을 설치하고 build.gradle에 sourceCompatibility값을 수정한다.

변경 전

sourceCompatibility = '11'

변경 후

sourceCompatibility = '17'

gradle에서 Spring Boot 3.0.5로 변경

build.gradle

변경 전

id 'org.springframework.boot' version '2.x.x'

변경 후

id 'org.springframework.boot' version '3.0.5'

gradle에서 querydsl 라이브러리 변경

변경 전

implementation 'com.querydsl:querydsl-core'
implementation 'com.querydsl:querydsl-jpa'

annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
annotationProcessor 'jakarta.annotation:jakarta.annotation-api'

변경 후

implementation 'com.querydsl:querydsl-core:5.0.0'
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'

annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
annotationProcessor 'jakarta.annotation:jakarta.annotation-api'

resdtdocs 버젼 변경

변경 전

asciidoctorExt "org.springframework.restdocs:spring-restdocs-asciidoctor:2.0.6"
testImplementation "org.springframework.restdocs:spring-restdocs-mockmvc:2.0.6"

변경 후

asciidoctorExt "org.springframework.restdocs:spring-restdocs-asciidoctor:3.0.0"
testImplementation "org.springframework.restdocs:spring-restdocs-mockmvc:3.0.0"

java import 변경

자바코드에서 jpa관련 import 코드를 jakarta쪽으로 변경 해야한다.

변경 전

import javax.persistence.xxx

변경 후

import jakarta.persistence.

User 테이블

H2 최신버젼부터 테이블명으로 user를 사용할 수 없다. 예약어에서 제외하도록 설정한다.

application.yml

파라메터로 ; 이후에 NON_KEYWORDS=USER 를 추가한다.

spring:
  datasource:
    url: jdbc:h2:mem:hodolog;NON_KEYWORDS=USER
    username: sa
    password:
    driver-class-name: org.h2.Driver