전체 Release Notes 목록은 이 곳에서 확인할 수 있습니다.
https://luvstudy.tistory.com/tag/Release%20Notes
Spring Boot 2.3 Release Notes
Spring Boot 2.3이 지난 5월 15일 Release 되었다.
Upgrading from Spring Boot 2.2
Deprecations from Spring Boot 2.2
deprecated 상태였던 상당 수의 class, method, properties가 이번 release에서 제거되었다.
Configuration properties
migration을 위해 아래의 라이브러리를 제공한다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
migration이 끝나면 해당 라이브러리는 삭제하여한다.
Changes to minimum requirements
Spring Boot는 최소 요구 사항이 다음과 같다.
- Gradle 6.3+. 5.6.x 도 지원하지만 더 이상 사용되지 않는 형식임
- Jetty 9.4.22+
Spring Data Neumann
Cassandra, Couchbase, Elasticsearch 또는 MongoDB를 사용한다면 변경된 부분들에 대한 체크를 해야 한다.
R2DBC GA 지원이 추가되었다.
Validation Starter no longer included in web starters
Web과 WebFlux starter에 validation starter가 제외되었다.
validation을 사용하는 경우 spring-boot-starter-validation 라이브러리를 추가해야 한다.
Micrometer
이번 release에 포함된 micrometer 1.5 업그레이드로 인해 다수의 deprecation이 발생한다.
Spring Cloud Connectors starter has been removed
Embedded Servlet web server threading configuration
embed Servlet web server의 thread관련 구성이 thread group으로 이동되었다.
server.jetty.threads, server.tomcat.threads, server.undertow.threads 와 같은 properties를 사용할 수 있다.
Changes to the Default Error Page’s Content
오류 메시지 및 binding error는 더 이상 기본 오류 페이지에 포함되지 않는다.
이렇게 하면 클라이언트에 정보가 노출될 위험이 줄어든다.
server.error.include-message와 server.error.include-binding-errors 설정을 통해 변경할 수 있다. (always, on-param, never)
Disk space health indicator
Automatic creation of developmentOnly Gradle configuration
Spring DevTools 같이 개발 시에만 사용하는 의존성 관련 설정이 Spring Boot의 Gradle plugin을 통해 자동 생성되게 된다.
Removal of some Maven Plugin Management
exec-maven-plugin, maven-site-plugin을 사용하지 않게 되었다.
ApplicationContextRunner disables bean overriding by default
Spring Application과 일관성을 유지하기 위해 ApplicationContextRunner는 Bean override를 default로 비활성화한다.
New and Noteworthy
configuration changelog에서 변경된 configuration 내역을 확인할 수 있다.
Java 14 support
Build OCI images with Cloud Native Buildpacks
Cloud Native Buildpacks를 사용한 building Docker images를 지원하며 spring-boot:build-image goal과 bootBuildImage task가 maven과 gradle plugin에 추가되었다.
layered jar를 만들면 spring-boot-jarmode-layertools jar가 추가된다.
Predictable Classpath Ordering When Exploding Fat Jars
Support of wildcard locations for configuration files
이제 configuration file의 위치에 wildcard를 지원한다.
default로 /config/*/ 를 지원하며 이는 /config/mysql/application.properties 와 /config/redis/application.properties 와 같이 별도의 구성을 선택할 수 있다. (어떻게?)
Graceful shutdown
embeded web server(Jetty, Reactor Netty, Tomcat, Undertow)에 Graceful shutdown을 지원한다.
server.shutdown=graceful을 사용하여 활성화하면 웹 서버는 더 이상 새 요청을 허용하지 않으며 활성 요청이 완료될 때까지 유예 기간을 기다린다.
spring.lifecycle.timeout-per-shutdown-phase로 유예 시간을 설정할 수 있다.
Liveness and Readiness probes
kubernetes의 pod 상태를 확인하는 개념인 liveness와 readiness 체크를 위한 지원이 추가되었다.
Configurable base path for WebFlux applications
spring.webflux.base-path 속성 설정이 추가되었다.
Date-Time conversion in web applications
time, date-time 값을 변환하기 위한 설정을 제공한다.
spring.mvc.format.[date, date-time, time]
spring.webflux.format.[date, date-time, time]
ISO-8601 포맷이 적용된다.
Actuator Improvements
End-to-end Traceability for Configuration Properties
실제 설정된 Properties를 확인할 수 있는 /actuator/configprops가 제공된다.
/actuator/env의 경우 각 파일별 설정값을 확인할 수 있는데 실제 적용된 값을 확인하기엔 불편함이 있었다.
Names in metrics endpoint are ordered alphabetically
/actuator/metrics 가 알파벳 순 정렬이 되도록 변경되었다.
Query-less datasource health indicator
유효성 검증 쿼리가 없으면 datasource HealthIndicator는 java.sql.Connection#isValid를 사용하여 유효성 검증 쿼리 없는 모드로 동작한다.
Contributing additional tags to Web MVC and WebFlux metrics
이건 어떤 설명인지 이해를 못하였음.
Auto-configuration of Wavefront’s Sender
WavefrontSender 빈 선언을 통해 WaveFront에 대한 auto configuration을 제공함.
Native Kafka metrics
kafka metric을 지원하며 관련 설정은 다음과 같다.
factory.addListener(new MicrometerConsumerListener<>(meterRegistry));
RSocket support for Spring Integration
RSocket auto configuration을 지원하게 되었다.
Binding to Period
properties에 java.time.Period 속성에 대한 바인딩이 지원된다.
Slice test for Web Services
새로 추가된 @WebServiceClientTest annotation을 통해 웹서비스의 분할 테스트를 지원한다.
'Study > Java' 카테고리의 다른 글
Spring Boot가 2.3.x 이후 build tool을 Gradle로 바꾸다. (0) | 2020.07.14 |
---|---|
Spring Boot Dynamic Bean 등록 (0) | 2020.06.25 |
Spring Rest Docs response body 한글 깨짐 문제 (mockmvc 설정 문제) (0) | 2020.06.19 |
spring reference 문서는 어떻게 만들어질까? (0) | 2020.06.12 |
[troubleshooting] 아직 명확한 해결법을 찾지 못한 Spring Boot web No ServletContext set 에러 현상 (0) | 2020.06.05 |
JDK 14 New Features (0) | 2020.03.30 |
Spring Custom HandlerExceptionResolver 사용하기 (0) | 2020.02.18 |
재미로 보는 Spring Project release train naming (0) | 2020.02.07 |
OOP 개발 원칙 (0) | 2020.01.31 |
RestTemplate Generic responseType 사용 (0) | 2020.01.28 |