웹사이트 검색

봄 5


Spring 5는 2017년 말에 릴리스되었습니다. Spring 5는 Spring 프레임워크에 대규모 업데이트를 제공합니다. Spring 4는 2013년에 출시되었으므로 모두가 프레임워크의 대대적인 개편을 기대하고 있었습니다. Spring 프레임워크의 새로운 기능을 보게 되어 매우 기쁩니다.

봄 5 기능

Spring 5 기능은 크게 다음 범주로 나눌 수 있습니다.

  • 자바 기본 지원
  • 핵심 API 향상
  • Spring 웹 MVC 향상
  • 스프링 웹플럭스
  • Kotlin 지원 기능적 프로그래밍
  • 테스트 개선
  • 더 이상 사용되지 않는 지원 및 제거된 패키지

Java 기본 지원

  • Spring 5는 Java 8에서 실행되므로 Spring 코드는 람다 식을 활용하여 코드 가독성을 높일 수 있습니다.
  • Spring 5는 Java 9도 지원하므로 모듈 기반 아키텍처에서도 애플리케이션을 만들 수 있습니다.
  • Spring 5는 Java EE 7을 지원하고 Java EE 8과도 호환됩니다. 따라서 애플리케이션에서 Servlet 4.0, Bean Validation 2.0, JPA 2.2를 사용할 수 있습니다. 이전 버전, 즉 Servlet 3.1, Bean Validation 1.1, JPA 2.1을 사용할 수도 있습니다.
  • Spring 5 애플리케이션 선호 서버 버전은 Tomcat 8.5+, Jetty 9.4+ 및 WildFly 10+입니다.

저는 Spring 5가 다양한 기술의 최신 버전을 따라잡으려는 것이 정말 마음에 듭니다.

핵심 API 향상

  • 패키지 수준에서 null이 아닌 API 선언. Null 허용 인수, 필드 및 반환 값에는 @Nullable 주석이 명시적으로 추가됩니다.
  • 파일 작업은 NIO 2 스트림을 통해 수행됩니다. 즉, FileInput/Output 스트림이 없습니다. 이는 파일 기반 응용 프로그램의 성능을 크게 향상시키고 향상시킵니다.
  • Spring Framework 5.0은 자체 Commons Logging 브리지와 함께 제공됩니다. 표준 Commons Logging 대신 spring-jcl.
  • classpath 스캐닝이 아닌 "META-INF/spring.components\ 인덱스 파일을 통해 스프링 컴포넌트 정보 제공 지원. 대규모 스프링 프로젝트와 많은 스프링 컴포넌트가 있는 경우 시작 시간이 많이 향상됩니다. 더 좋을 것입니다. 전체 클래스 경로 파일을 검색하는 대신 지정된 파일을 직접 조사하여 애플리케이션 진입점을 파악할 수 있기 때문입니다.

스프링 웹 MVC 개선 사항

Spring MVC 모듈은 최신 Java EE 기술 사용 측면에서 대대적인 점검을 받았습니다. 주요 개선 사항 중 일부는 다음과 같습니다.

  • Spring 제공 Filter 구현에서 전체 Servlet 3.1 서명 지원.
  • Spring MVC 컨트롤러 메서드에서 Servlet 4.0 PushBuilder 인수를 지원합니다.
  • 일반 서버에서 Servlet 3.0 멀티파트 구문 분석에 대한 MaxUploadSizeExceededException
  • MediaTypeFactory 대리자를 통해 공통 미디어 유형에 대한 통합 지원
  • @ConstructorProperties를 사용한 불변 객체와의 데이터 바인딩.
  • Jackson 및 GSON의 대안으로 JSON 바인딩 API 지원
  • Spring MVC 컨트롤러 메서드의 반환 값으로 Reactor 3.1 Flux 및 Mono와 RxJava 1.3 및 2.1을 지원합니다.
  • @ResponseStatus에 대한 프로그래밍 방식의 대안으로 ResponseStatusException을 지원합니다.

스프링 웹플럭스

Spring WebFlux는 spring-webmvc 모듈의 대안이며 반응형 프레임워크에 구축된 새로운 모듈입니다. 이 모듈은 이벤트 루프 실행 모델에 구축된 완전 비동기 및 비차단 응용 프로그램을 만드는 데 사용됩니다.

  • 객체 스트림을 인코딩 및 디코딩하기 위한 인코더 및 디코더와 같은 스프링 코어의 반응형 인프라.
  • @Controller 스타일, 주석 기반, 프로그래밍 모델, Spring MVC와 유사하지만 반응형 스택에서 실행되는 WebFlux에서 지원됩니다.
  • RestTemplate과 유사하지만 유창한 API를 통해 HTTP 호출을 위한 기능적이고 반응적인 API가 포함된 새로운 WebClient는 WebFlux 인프라를 기반으로 하는 비차단 및 스트리밍 시나리오에서도 뛰어납니다.

Kotlin 지원을 통한 함수형 프로그래밍

Spring 5는 이제 Kotlin 프로그래밍도 지원합니다. Java가 함수형 프로그래밍으로 이동하는 것처럼 이것은 함수형 프로그래밍을 지원하는 데 큰 진전입니다.

  • Null-Safe API 지원
  • 선택적 매개변수 및 기본값이 있는 Kotlin 불변 클래스 지원
  • Kotlin은 유형 매개변수를 구체화하여 RestTemplate 또는 WebFlux API와 같은 다양한 API에서 직렬화/역직렬화에 사용할 클래스를 명시적으로 지정하지 않도록 했습니다.
  • 선택적 매개변수가 있는 Kotlin autowired 생성자를 지원합니다.
  • @RequestHeader/etc 주석에 대한 Kotlin null-safety 지원.

테스트 개선

  • JUnit 5 지원
  • Spring TestContext Framework에서 병렬 테스트 실행 지원

더 이상 사용되지 않는 지원 및 제거된 패키지

  • spring-aspects에서 beans.factory.access, jdbc.support.nativejdbc, mock.staticmock 패키지를 제거했습니다. 코드> 모듈.
  • 삭제된 패키지 web.view.tiles2orm.hibernate3/hibernate4가 삭제되었습니다. 즉, Spring 5를 사용할 계획이라면 Hibernate 5도 사용해야 합니다.
  • 이전 기술 Portlet, Velocity, JasperReports, XMLBeans, JDO, Guava에 대한 지원 중단. 이들 중 하나를 사용하고 있다면 다른 기술로 마이그레이션하거나 Spring 4를 유지하십시오.

Spring 5 기능에 대한 간략한 개요는 여기까지입니다. 참조: Spring GitHub 문서