본문 바로가기
IT/Java

Spring 6.0 / SpringBoot3.0 에 대해

by 성준하이 2022. 11. 20.
반응형

스프링 5.X 버전과 SpringBoot 2.X 이 나온지 얼마 전 같은데 벌써 다음 릴리즈가 준비가 되었고 이에 대한 내용을 포스팅 써본다.

 

현재의 상황을 정리해보면 

스프링 공식 홈페이지에서 이렇게 설명들이 올라와 있다.

위 두사진 처럼 spring6에 대한 설명과

이와 같은 springboot3 에 대한 얘기도 있다.

 

궁극적으로 이전 버전들과의 차이점이 결국 제일 중요한데 그것들에 대해 정리를 해보면 다음과 같다.

 

 

차이점

Spring 5.x -> 6.0 달라지는 점

  • Java 17기반으로 변경
  • 일부 Java EE API 지원 종료 (아래 참고 포스팅 참조 Jakarta)
  • XML이 점차적으로 Spring에서는 사라지게 될 것
  • RPC 지원 종료
  • 새로운 AOT 엔진 도입 (밑에 설명 추가)
  • @Inject 같은 JSR에서 지원하던 어노테이션들이 jakarta.annotation 패키지의 어노테이션으로 변경
  • HttpMethod가 enum에서 class로 변경
  • Jakarta EE 9+로의 마이그레이션으로 인한 변경(아래 참고 포스팅 참조 Jakarta)
    • Hibernate ORM 5.6.x 버전부터 hibernate-core-jakarta 사용
    • javax.persistence에서 jakarta.persistence로 변경
    • Tomcat 10, Jetty 11, Undertow 2.2.14 (undertow-servlet-jakarta도 포함)으로 업그레이드 필요
    • javax.servlet에서 jakarta.servlet으로 변경 필요 (import)
  • Commons FileUpload, Tiles, FreeMarker JSP support 같은 서블릿 기반 기능이 지원 종료
    • multipart file 업로드 혹은 FreeMarker template view는 StandardServletMultipartResolver 사용을 권장
    • 이외에는 Rest 기반 웹 아키텍처 사용
  • Spring MVC와 Spring WebFlux에서 더 이상 type 레벨에서의 @RequestMapping을 자동 탐색하지 않음
    • interface의 경우에는 @RequestMapping을 붙여도 더 이상 탐색되지 않음
    • 따라서 Class에 붙이거나 interface에도 사용하고 싶으면 @Controller도 붙여야 함
    • spring-cloud-openfeign에서도 이것 때문에 interface레벨 @RequestMapping 지원 종료(Git Issue)
  • URL에서 마지막으로 나오는 / 매칭해주는 trailing slash matching configuration 기본적으로 지원하지 않음 (옵션 추가 시 사용 가능)

Spring Boot 2.x -> 3.0 달라지는 점

  • 최소 요구사항 변경 (M4 기준)
    • Gradle 7.5
    • Groovy 4.0
    • Jakarta EE 9
    • Java 17
    • Kotlin 1.6
    • Hibernate 6.1
    • Spring Framework 6
  • AOT maven, gradle 플러그인 제공
  • native 지원 기능 확대

참고 포스팅

https://thenicesj.tistory.com/391

 

Java 와 Jakarta

자바의 변천사에 대해서 알아보면 자바는 JavaEE 와 J2EE 등 플랫폼으로 사용되다가 최근 2018년도부터는 자카르타EE로 명칭을 바꾸고 새로운 변화를 시작했다. JavaEE 1999년 썬 마이크로시스템즈가 J2

thenicesj.tistory.com

 

반응형

'IT > Java' 카테고리의 다른 글

Java 에서의 Apache POI  (37) 2022.11.22
Spring AOT 란?  (38) 2022.11.21
공백 제거 trim() / strip()  (32) 2022.11.19
JpaRepository 관련 쿼리메서드  (40) 2022.11.16
Java 와 Jakarta  (37) 2022.11.13

댓글