kenu
55k
2021-09-07 06:17:40 작성 2021-09-07 06:18:22 수정됨
2
386

Spring Framework 6용 Java 17 및 Jakarta EE 9 베이스라인


원문: https://spring.io/blog/2021/09/02/a-java-17-and-jakarta-ee-9-baseline-for-spring-framework-6

위르겐 홀러
2021년 9월 2일

어제 SpringOne에서 발표된 바와 같이, Spring Framework 6 및 Spring Boot 3은 2022년 4분기에 일반 공급을 위한 하이엔드 베이스라인으로 계획되어 있습니다.
  • Java 17+ (Spring Framework 5.3.x 라인은 Java 8-17부터)
  • Jakarta EE 9+ (Spring Framework 5.3.x 라인은 Java EE 7-8에서)
이 미래 지향적인 기준은 API 설계 및 통합 노력에 상당한 이점을 제공하여 향후 수년 동안 애플리케이션 코드와 프레임워크 및 애플리케이션의 미래 경쟁력을 강화할 것입니다. 그러나 당연히 비용이 듭니다. Spring Framework 6 및 Spring Boot 3 기반 애플리케이션은 런타임 시 최소 JDK 17과 최소 Tomcat 10/Jetty 11(자카르타 EE 9 호환성용)이 필요합니다. 더 중요한 것은 애플리케이션 소스 코드에 몇 가지 변경이 필요할 수 있다는 것입니다. 예를 들어 Servlet API, JPA, Bean Validation 등을 만질 때마다 Jakarta EE 9에서 javax 에서 jakarta 로의 네임스페이스 변경이 있을 수 있습니다.

처음에는 공격적으로 들릴 수 있지만 우리는 2022년 4분기 릴리스에 대해 이야기하고 있음을 명심하십시오. 그때쯤이면 JDK 17이 1년 이상 동안 다음 장기 지원 릴리스로 JDK 11을 대체할 뿐만 아니라 그 자체가 JDK 18 및 JDK 19에 의해 그 당시 사용 가능한 기능 릴리스로 대체되었으며 JDK 20은 이미 기능 동결에 접근하고 있습니다. Jakarta EE 9의 경우와 동일: Jakarta EE 10은 그때쯤 나올 것으로 예상하고 또 다른 세대의 Tomcat, Jetty 및 co가 런타임 옵션으로 지원될 것으로 예상합니다. 위의 기준선을 최소한으로 유지하면 Java 17 및 Jakarta EE 9가 시작에 불과한 Spring Framework 6.x 세대에서 추가 Java 진화를 선택할 수 있습니다.

이와 동시에 Spring Framework 5.3.x 및 Spring Boot 2.x는 현재 11월에 Spring Boot 2.6이, 2022년 5월에는 Spring Boot 2.7이 출시될 예정입니다. 최종 Spring Boot 2.x 기능 분기가 완료되면 (이것이 2.7이 될지 아니면 이후 릴리스가 될지는 아직 결정되지 않음), 해당 분기는 Spring Framework 5.3.x와 함께 확장된 오픈 소스 유지 관리 단계로 바뀌고 Spring과 병렬로 몇 년이 겹칩니다. Framework 6 및 Spring Boot 3. Spring Framework 3.2.x 및 4.3.x 유지 관리 분기에 대한 이전 처리를 고려하여 이것이 실제로 어떻게 될지 이해하십시오.

따라서 앞으로 몇 년 동안 JDK 8 또는 11을 사용하거나 몇 년 동안 JDK 17의 Spring Framework 5.3 인프라를 사용하려는 경우에도 Spring Framework 5.3.x 및 Spring Boot 2.x가 당신을 지켜줄 것입니다. 차세대 Java 에코시스템을 위한 애플리케이션을 준비할 준비가 되면 새로운 인프라 이점 및 새로운 아키텍처 옵션과 함께 Tomcat, Jetty 및 co와 함께 원하는 속도로 Spring Framework 6 및 Spring Boot 3으로 자유롭게 업그레이드하십시오. 사용할 수 있게 됩니다. 앞으로 몇 년 동안 이러한 선택에 감사하시기 바랍니다.

추신: JDK 11이 LTS 세대인지 궁금한 경우 JDK 11의 상용 지원 기간이 JDK 8보다 짧으며 JDK 11 LTS는 이미 2023년 말에 단계적으로 중단됩니다. 차세대 LTS인 JDK 17은 적어도 2026년까지 지원 기간을 제공합니다. 우리는 JDK 8이 생태계에서 독특한 역할을 한다고 생각합니다. 이에 비해 JDK 11은 과도기 릴리스입니다. 또한 JDK 17은 최신 언어, API 및 JVM 개선 사항을 누적하여 제공하여 더욱 강력한 업그레이드를 제공합니다. 마지막으로 중요한 것은 동일한 Spring Framework 6.x 세대 내에서 여전히 지원하는 JDK 23 LTS(2024) 및 JDK 29 LTS(2027)가 있어 최종 지원 범위를 다소 넓은 JDK 17-29로 바꾸는 것입니다.

* 구글 번역 초벌

Release FamilyEnd Of Support Life (EOSL)
18September 2022(1)
17 LTSSeptember 2029
16September 2021
15March 2021
14September 2020
13March 2020
11 LTSSeptember 2026
10September 2018
9March 2018
8 LTSDecember 2030
7 LTSJuly 2022
6 LTSDecember 2018
5 LTSJuly 2015
4 LTSMarch 2013
3 LTSApril 2011
2 LTSDecember 2003
1 LTSOctober 2002
0
  • 댓글 2

  • Mambo
    6k
    2021-09-07 07:48:57 작성 2021-09-07 07:50:54 수정됨

    2021년 09월 14일 JDK 17 GA

    전자정부프레임워크 담당하시는 개발자분은 또 열일 하셔야겠네요...

    스프링 부트 기반이 나온다는데 스타터로 지원하는건가?

  • kenu
    55k
    2021-09-07 12:05:23

    2020.12.05 실행환경 4.0.0 alpha

    • Spring Boot 2.2.* 지원
    • 실행환경 groupId 와 artifactId 변경 (egovframework.rte -> org.egovframe.rte)
    • 실행환경 오픈소스 버전 업그레이드 (Spring Framework 4.3.25 -> 5.2.5)
    • 실행환경 오픈소스 버전 업그레이드 (Spring Security 4.3.13 -> 5.2.3)
    • 실행환경 오픈소스 버전 업그레이드 (Spring Data JPA 1.11.23 -> 2.2.3)
    • 실행환경 오픈소스 버전 업그레이드 (Spring Batch 3.0.10 -> 4.2.2)

    다음 버전 개발 중입니다.

    https://github.com/eGovFramework/egovframe-runtime

  • 로그인을 하시면 댓글을 등록할 수 있습니다.