-
Spring Boot 2 to Spring Boot 3 마이그레이션Spring Framework 2023. 6. 7. 00:01728x90
개요
spring boot 2.6.2 버전을 spring boot 3.0.6으로 마이그레이션 하며 스프링부트 2와 3의 차이점을 알아보고자 합니다.
Spring Boot 2.7로 마이그레이션
우선 Spring Boot 2의 가장 최신버전으로 마이그레이션을 하고, 최대한 @Deprecated된것을 제거하는 것이 좋습니다.
@Deprecated된 것 중 아예 제거된 것이 있을 수 있으며 원활하게 Spring Boot 3로 넘어갈 수 있습니다.
JDK Version
스프링 부트3 에서는 JDK 17 미만의 버전을 지원하지 않습니다.
패키지 이름 변경(javax -> jakarta)
javax.persistence.* ➔ jakarta.persistence.* javax.validation.* ➔ jakarta.validation.* javax.servlet.* ➔ jakarta.servlet.* javax.annotation.* ➔ jakarta.annotation.* javax.transaction.* ➔ jakarta.transaction.*
Java EE에서 Jakarta EE로 전환하면서 패키지 네임을 변경해주어야 합니다.
Path Matching
GET /api/v1/todos/name/
위의 형식과 같이 마지막에 / 때문에 /api/v1/todos/name과 동일하지 않으며 404 error가 발생할 수 있습니다.
- Before 3.0 /foo/bar is equivalent to /foo/bar/
- After 3.0 /foo/bar different from /foo/bar/
Data access related changes
- spring.redis -> spring.data.redis (application.yaml)
- Flyway update to 9.0
- Hibernate update to 6.1
- R2 DBC update to 1.0
Spring Batch Changed
- Spring Batch 5.0로 마이그레이션
- @EnableBatchProcessing 사용하면 안 됨
Spring Cloud AWS, AWS Java SDKChanged
Spring 3.0.x 버전부터는 AWS Java SDK 가 1.x -> 2.x를 사용해야 합니다.
Spring Cloud AWS를 사용한다면 2.x -> 3.x를 사용해야 합니다.
참고자료
https://www.springcloud.io/post/2022-11/springboot3-upgrade-guide/#data-access-related-changes
'Spring Framework' 카테고리의 다른 글
FeignClient 헤더 가져오기 (0) 2023.07.12 Spring Cloud Feign FallbackFactory가 동작하지 않는다 (2) 2023.07.06 ThreadLocal이란? (0) 2023.05.19 Controller에서 List 받기(+ dto로 받고 validation) (0) 2023.03.22 Spring 버전에 맞는 Dependency 버전 찾기 (0) 2023.02.06