반응형
기본 JDK 지원 버전 업데이트
- Spring Framework 5.0 최소 요구 사항 : Java 8
- 전체 Spring 프레임 워크 5.0 코드베이스는 Java 8에서 실행
Core Framework Revision
- Java 8 reflection 기반으로 Spring Framework 5.0의 메소드 매개 변수에 효율적으로 액세스 가능
- 코어 스프링 인터페이스는 이제 Java 8 기본 메소드를 기반으로 선택적 선언을 제공
- @ Nullable 및 @ NotNull 주석은 nullable 인수 및 반환 값을 명시적으로 표시
- 런타임에 NullPointerExceptions 대신 컴파일 타임에 Null 값을 처리 가능
Core Container Updates
- 선택적 주입 포인트에 대한 지표로 @Nullable 어노테이션 지원
- GenericApplicationContext/AnnotationConfigApplicationContext 함수형 스타일 형태
- 인터페이스 메소드에서 트랜잭션, 캐싱, 비동기 어노테이션 감지
- 버전 정보 없는 XML 설정 네임스페이스
- classpath 스캐닝 대신에 후보 구성 요소 색인 지원
Reactive Programming Model
- Reactive Stack Web Framework이 핵심
- 완전히 반응적이고 논 블로킹
- 소수의 스레드로 확장 할 수있는 이벤트 루프 스타일 처리에 적합
- Reactive Streams :
- Netflix, Pivotal, Typesafe, Red Hat, Oracle, Twitter 및 Spray.io의 엔지니어가 개발 한 API 사양
- 리액티브 프로그래밍 구현을 위한 공통 API 제공
- Hibernate, JPA와 유사. (JPA가 API이고, Hibernate가 구현)
- Reactive Streams API는 공식적으로 Java 9의 일부
- Java 8에서는 Reactive Streams API 사양에 대한 종속성을 포함
- Spring Framework 5.0은 Reactive Streams API 사양을 구현 한 Project Reactor 기반
Spring-webflux - 서버 측 두 가지 프로그래밍 모델을 가짐
- @Controller와 Spring MVC의 다른 Annotation으로 된 Annotation 기반
- Java 8 lambda를 사용한 함수형 스타일 라우팅 및 처리
Spring Webflux를 사용하면 RestTemplate의 대안으로 반응적이고 non-blocking적인 WebClient를 만들 수 있음
Kotlin을 사용한 함수형 프로그래밍
- JetBrains Kotlin 언어 지원
- Kotlin은 JVM 상단에서 실행되지만 이에 국한되지 않음
테스팅 개선
- Junit 5 Jupiter 완벽 지원
- Jupiter 서브 프로젝트는 프로그래밍 및 확장 모델을 제공 할뿐만 아니라 Spring에서 Jupiter 기반 테스트를 실행하는 테스트 엔진을 제공
- Spring Framework 5는 Spring TestContext Framework에서 병렬 테스트 실행을 지원
- 리액티브 프로그래밍 모델의 경우 스프링 테스트에는 이제 Spring WebFlux에 대한 테스트 지원을 통합하기위한 WebTestClient가 포함
지원 중단 패키지
- beans.factory.access
- jdbc.support.nativejdbc
- mock.staticmock
- web.view. tiles2M
- orm.hibernate3
- orm.hibernate4
라이브러리 지원 중단
- Portlet
- Velocity
- JasperReports
- XMLBeans
- JDO
- Guava
라이브러리 지원
- Jackson 2.6+
- EhCache 2.10+ / 3.0 GA
- Hibernate 5.0+
- JDBC 4.0+
- XmlUnit 2.x+
- OkHttp 3.x+
- Netty 4.1+
Summarry
- 중요한 패러다임 전환 - 리액티브 프로그래밍
- 스프링 데이터 팀은 이미 MongoDB 및 Redis에 대한 리액티브 프로그래밍을 대응함
- JDBC 지원 불가(JDBC 스펙 자체가 차단중, 전통적인 JDBC 데이터베이스로 리액티브 프로그램을 보는 것은 현재로서는 불가)
- Spring Framework 5는 Reactive Streams 표준 API의 구현체인 Reactor를 사용중
Reference
반응형
'Devlopment > Spring' 카테고리의 다른 글
Spring DI(Dependency Injection) - 비교 및 방법에 대해 (0) | 2019.09.16 |
---|---|
Spring Boot. (0) | 2018.06.24 |
Spring File 읽어오기 (0) | 2017.07.01 |
RestController의 기본 컨텐츠 타입 변경 (0) | 2017.03.07 |
Spring message 설정하기 (0) | 2017.02.20 |
Spring에서 Webjars 사용하기 (0) | 2017.02.20 |
[Spring Security] 필터 Filter, SecurityFilterChain 이해하기 (1) | 2017.02.08 |
[SpringSecurity] Method 레벨에서 AccessDeniedException 처리하기 (0) | 2017.02.07 |
Spring Security custom expression (0) | 2017.02.01 |
Spring Security 관련 레퍼런스 정리 (0) | 2017.02.01 |