개발/Spring

[Spring] Spring Boot v2.7

nova_dev 2022. 10. 18. 00:00
반응형

Spring Boot v2.7

Spring Boot 2.7 Release Notes · spring-projects/spring-boot Wiki

1. spring.mongodb.embedded.features 구성 속성이 제거됨

  • Embedded Mongo 3.4는 Mongo 기능 구성에 대한 지원을 중단함. 이에spring.mongodb.embedded.features 구성 속성이 제거되었음.
  • Mongo를 시작하는 데 사용되는 명령줄을 변경하기 위해 기능이 지정되는 고급 구성의 경우 사용자 지정 MongodConfig 빈을 대신 제공해야 함.

2. MongoDB 속성 우선 순위

  • 이전에는 spring.data.mongodb.uri가 spring.data.mongodb.host 및 spring.data.mongodb.port와 같은 동등한 개별 속성과 함께 구성되면 예외가 발생함
  • uri 속성은 이제 별도의 속성보다 우선함. spring.data.mongodb.uri가 설정되면 무시됨. 이것은 spring.redis.url과 같은 다른 유사한 속성과 동작을 정렬함

3. Ordered Exit Code Generators

  • ExitCodeGenerator는 이제 Ordered 구현 및 @Order 주석을 기반으로 정렬됨. 생성된 첫 번째 0이 아닌 종료 코드가 사용됨

4. WebSecurityConfigurerAdapter에서 SecurityFilterChain으로 마이그레이션

  • Spring Boot 2.7은 WebSecurityConfigurerAdapter를 더 이상 사용하지 않는 Spring Security 5.7로 업그레이드한다.
  • WebSecurityConfigurerAdapter 없이 Spring Security를 설정하고 @WebMvcTest와 같은 Spring Boot의 슬라이스 테스트를 사용할 때, 보안 구성 클래스를 @Import하여 테스트에서 SecurityFilterChain 빈을 사용할 수 있도록 하려면 애플리케이션을 약간 변경해야 할 수도 있다. 자세한 내용은 the reference documentation
    를 참조.

5. Maven Shade 플러그인 및 Gradle Shadow 플러그인으로 Jars Build 하기

  • Spring Boot 2.7은 자동 구성 및 관리 컨텍스트 클래스가 검색되는 방식을 변경.
  • 이제 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
    META-INF/spring/org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration.imports라는 파일에 선언.

Gradle Shadow 플러그인 구성

tasks.withType(ShadowJar).configureEach {
    append("META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports")
    append("META-INF/spring/org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration.imports")
}

6. Spring MVC의 requestMappingHandlerMapping은 더 이상 기본이 아닙니다.

  • Spring Framework 5.1부터 Spring MVC는 여러 RequestMappingHandlerMapping 빈을 지원한다. 이에 맞춰 Spring Boot 2.7은 더 이상 MVC의 주요 requestMappingHandlerMapping 빈을 @Primary로 정의하지 않는다.
  • RequestMappingHandlerMapping을 주입하는 드문 경우에 컨텍스트에 이러한 빈이 여러 개 있는 경우 이제 @Qualifier를 사용하여 주입하려는 후보를 선택해야 한다. 또는 List을 사용하여 모든 후보를 주입할 수 있음.

7. Spring Boot 2.5의 사용 중단

Spring Boot 2.5에서 더 이상 사용되지 않는 클래스, 메서드 및 속성이 이번 릴리스에서 제거됨. 업그레이드하기 전에 더 이상 사용되지 않는 메서드를 호출하지 않는지 확인.

8. 자동 구성 변경사항

  • 자체 자동 구성을 만든 경우 org.springframework.boot.autoconfigure.EnableAutoConfiguration 키 아래의 spring.factories에서 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 라는 새 파일로 등록을 이동.
  • 쉼표로 구분된 단일 목록 대신 각 줄에는 자동 구성 클래스의 정규화된 이름이 포함됩니다. 예제는 the included auto-configurations 링크 참조.
  • 이전 버전과의 호환성을 위해 spring.factories의 항목은 여전히 유지함.

9. 새로운 @AutoConfiguration 주석

  • 새로운 @AutoConfiguration 주석이 도입되었습니다. @Configuration 대신 새로운 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports에 나열된 최상위 자동 구성 클래스에 주석을 추가하는 데 사용해야 한다.
  • @AutoConfiguration 클래스 내에 중첩되거나 가져온 구성 클래스는 이전과 같이 @Configuration을 계속 사용해야 한다.
  • 편의를 위해 @AutoConfiguration은 after, afterNames, before 및 beforeNames 속성을 통한 자동 구성 순서도 지원함. 이것은 @AutoConfigureAfter 및 @AutoConfigureBefore의 대체품으로 사용될 수 있다.

10. Docker Image Building

Podman Support

Maven 및 Gradle 플러그인은 이제 Cloud Native Buildpack을 사용하여 이미지를 빌드할 때 Docker 엔진의 대안으로 Podman 컨테이너 엔진 사용을 지원한다..

Simplified Registration of Jackson Mixins

Jackson에 대한 자동 구성은 이제 @JsonMixin으로 주석이 달린 클래스에 대한 애플리케이션 패키지를 스캔한다. 발견된 모든 클래스는 자동 구성된 ObjectMapper를 사용하여 믹스인으로 자동 등록된다.

11. Dependency Upgrades

반응형