db & 코어 모듈들 버전업 해준 뒤, 프로젝트 버전 업 진행.
gradle-wrapper.properties 설정 변경
그래들 버전 업
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip
build.gradle 설정 변경
java 버전 지정 방법 변경
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
querydsl 지정방식 변경
// queryDSL
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api:2.1.1"
annotationProcessor "jakarta.persistence:jakarta.persistence-api:3.1.0"
def querydslSrcDir = 'build/generated/querydsl'
tasks.withType(JavaCompile).configureEach {
options.getGeneratedSourceOutputDirectory().set(file(querydslSrcDir))
}
sourceSets {
main.java.srcDir querydslSrcDir
}
Lombok 버전 업
// Lombok
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
hibernate 관련 버전 업
// hibernate
implementation 'org.hibernate.orm:hibernate-core:6.3.0.Final'
implementation 'com.vladmihalcea:hibernate-types-60:2.21.0'
스웨거 버전업
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0'
yml 변경
레디스 프로퍼티 주입 값 형식 변경.
org.springframework.boot:spring-boot-autoconfigure:3.3.3 에서
spring.redis 형태 deprecated 뜸.
spring.data.redis형태로 권장.
// 기존코드
redis:
host: "master.kr-dv-elc-acc-v1.lgfm60.apn2.cache.amazonaws.com"
port: "4306"
password: "xxxx"
database: "2"
// 변경 코드
data:
redis:
host: "master.kr-dv-elc-acc-v1.lgfm60.apn2.cache.amazonaws.com"
port: "4306"
password: "xxxx"
database: "2"
프로젝트 코드 변경
javax -> jakarta 코드 변경
intellij 옵션으로 한번에 변경완료.
hibernate 버전 업 관련으로 코드 변경
기존 @TypeDef 지정 삭제 후 컬럼 위에 @Type(xx.class) 타입 넣어주면됨.
// 예시
@Type(JsonStringType.class)
@Column(columnDefinition = "json")
private List<String> btnOrder;
security 코드 변경
WebSecurityConfigurerAdapter는 Spring Security 5.7에서 Deprecated 되었고, Spring Security 6.x 버전에서는 제거되었습니다. Spring Boot 3.x에서 Spring Security 6.x가 기본으로 사용되며, 이로 인해 더 이상 WebSecurityConfigurerAdapter를 사용할 수 없습니다.
Spring Security 6.x에서는 새로운 Security Configuration 방식을 사용해야 합니다. 더 이상 WebSecurityConfigurerAdapter를 확장하지 않고, **SecurityFilterChain**을 사용하여 보안 구성을 명시합니다.
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
antMatcher
}
배치 코드 변경
스프링부트 3으로 가면서 spring batch 5 이상에서 BatchConfigurer & DefaultBatchConfigurer 가 depreacated됨.
// 기존 코드
@Configuration
@EnableBatchProcessing
@EnableAutoConfiguration(exclude = {HibernateJpaAutoConfiguration.class})
public class BatchConfiguration implements DefaultBatchConfigurer {
}
// 변경 코드
@Configuration
@EnableBatchProcessing
@EnableAutoConfiguration(exclude = {HibernateJpaAutoConfiguration.class})
public class BatchConfiguration extends DefaultBatchConfiguration {
}
spring batch 5 이상에서 jobParameter의 타입체크가 엄격해짐.
// 기존 코드
Map<String, JobParameter> jobParametersMap = new HashMap<>();
jobParametersMap.put("message", new JobParameter(message));
JobParameters parameters = new JobParameters(jobParametersMap);
try {
jobLauncher.run(jobConfig.cmsFileBoxJob(), parameters);
} catch (Exception e) {
log.error(e.getMessage(), e);
} finally {
ack.acknowledge();
}
// 변경 코드
Map<String, JobParameter<?>> jobParametersMap = new HashMap<>();
jobParametersMap.put("message", new JobParameter<>(message, String.class));
JobParameters parameters = new JobParameters(jobParametersMap);
try {
jobLauncher.run(jobConfig.cmsFileBoxJob(), parameters);
} catch (Exception e) {
log.error(e.getMessage(), e);
} finally {
ack.acknowledge();
}
spring batch 5 이상에서 JobBuilderFactory와 StepBuilderFactory가 deprecated됨.
관련 설정도 변경해줘야함..
리퀴베이스 변경
버전업만 해주니 해결
'FrameWork > Spring' 카테고리의 다른 글
[Java] Id 생성전략(UUID 선택 및 테스트) & spring JPA Bulk insert (0) | 2023.05.05 |
---|---|
[Spring] OpenApi 3.0 Swagger Springdoc 적용 (0) | 2022.12.04 |
[Spring] JPA Auditing 사용법 (0) | 2022.08.11 |
[Spring] @Async 비동기 멀티스레드 사용법 (4) | 2022.06.25 |
댓글