반응형
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
- Spring
- Spring Data 2021.2
- Spring HATEOAS 1.5
- Spring LDAP 2.4
- Spring Security 5.7
- Spring Session 2021.2
- thrid-party
- Elasticsearch 7.17
- Flyway 8.5
- H2 2.1
- Hazelcast 5.0
- Infinispan 13
- Json 2.9
- Json Path 2.7
- Kafka 3.1
- MariaDB 3.0
- Micrometer 1.9
- MongoDB 4.5
- OkHTTP 4.9
- REST Assured 4.5
- R2DBC
Borca
반응형
'개발 > Spring' 카테고리의 다른 글
ReflectionTestUtils를 이용한 private 필드와 메서드 단위테스트 (0) | 2024.12.02 |
---|---|
[Spring] Spring Boot 버전별 차이점 (0) | 2022.10.22 |
[Spring] Spring Boot v2.6 (0) | 2022.10.17 |
[Spring] Spring Boot v2.4 (0) | 2022.10.15 |
[Spring] Spring Boot v2.3 (0) | 2022.10.14 |