파란하늘의 지식창고
Published 2020. 5. 26. 15:10
Spring Boot 2.3 Release Notes Study/Java
반응형

전체 Release Notes 목록은 이 곳에서 확인할 수 있습니다.

https://luvstudy.tistory.com/tag/Release%20Notes


Spring Boot 2.3 Release Notes

 

 

spring-projects/spring-boot

Spring Boot. Contribute to spring-projects/spring-boot development by creating an account on GitHub.

github.com

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을 통해 웹서비스의 분할 테스트를 지원한다.

반응형
profile

파란하늘의 지식창고

@Bluesky_

내용이 유익했다면 광고 배너를 클릭 해주세요