전체 Release Notes 목록은 이 곳에서 확인할 수 있습니다.
https://luvstudy.tistory.com/tag/Release%20Notes
Spring Boot 2.4 Release Notes
Spring Boot 2.4 Release Note의 내용을 한글로 번역한 글입니다.
Upgrading from Spring Boot 2.3
Versioning Scheme change
2.4부터 Spring Boot는 새로운 Spring versioning scheme를 사용합니다.
기존의 경우 2.3.5.RELEASE
였다면 이제 2.4.0
으로 업데이트하면 됩니다.
JUnit 5’s Vintage Engine Removed from spring-boot-starter-test
2.4로 업그레이드하고 난 후 org.junit.Test
와 같은 Junit class에 대한 테스트 컴파일 오류가 발생하는 경우 spring-boot-starter-test
에 JUnit 5의 vintage engine이 제거되었기 때문입니다.
vintage engine을 사용하면 Junit 4로 작성된 테스트를 Junit 5에서 실행할 수 있습니다.
테스트를 JUnit 5로 마이그레이션 하지 않고 Junit 4를 계속 사용하려면 다음 예제와 같이 vintage engine dependency를 추가하면 됩니다.
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
Gradle의 경우는 아래와 같습니다.
testImplementation("org.junit.vintage:junit-vintage-engine") {
exclude group: "org.hamcrest", module: "hamcrest-core"
}
Config File Processing (application properties and YAML files)
Spring Boot 2.4에서 application.properties
및 application.yml
파일이 처리되는 방식이 변경되었습니다.
단순히 application.properties
나 application.yml
파일만 사용하는 경우 업그레이드가 원활합니다.
하지만 복잡한 설정 (profile specific properties 또는 profile active properties)을 사용하는 경우 새 기능을 사용하려면 몇 가지 변경이 필요할 수 있습니다.
Spring Boot 2.3 호환 처리를 원하는 경우 application.properties
나 application.yml
파일에 spring.config.use-legacy-processing
속성을 true
로 설정하면 됩니다.
Config Data Imports
spring.config.location
및 spring.config.import
(이번 release에 도입됨)를 통해 지정된 config location은 파일이나 폴더가 존재하지 않아도 더 이상 자동으로 실패하지 않습니다.
location을 가져오고 싶지만 찾을 수 없는 경우 skip 해도 괜찮다면 optional:
이란 접두사를 붙여야 합니다.
예를 들어 spring.config.location=optional:/etc/config/application.properties
설정은 /etc/config/
위치에서 application.properties
를 import 하며 존재하지 않는 경우 skip 합니다.
모든 위치를 optional로 설정하고 싶은 경우 spring.config.on-location-not-found=ignore
설정을 SpringApplication.setDefaultProperties(...)
또는 system/environment variable을 통해 사용하면 됩니다.
Embedded database detection
embeedded database 로직은 database가 memory에 있는 경우에만 embedded로 간주하도록 개선되었습니다.
이 변경은 H2, HSQL 및 Derby와 함께 파일 기반 지속성 또는 서버 모드를 사용하는 경우 두 가지 결과를 가져옵니다.
sa
username은 더 이상 설정되지 않습니다. 해당 설정을 원하는 경우spring.datasource.username=sa
를 설정하면 됩니다.- 이러한 database는 더 이상 포함된 것으로 간주되지 않으므로 시작 시 초기화되지 않습니다.
spring.datasource.initialization-mode
를 사용하여 설정할 수 있습니다.
Logback Configuration Properties
logback에 고유한 logging properties는 logback에 고유하다는 사실을 나타내기 위해 이름이 변경되었습니다.
이전 이름은 더 이상 사용되지 않습니다.
다음 Spring Boot properties가 변경되었습니다.
logging.pattern.rolling-file-name
→logging.logback.rollingpolicy.file-name-pattern
logging.file.clean-history-on-start
→logging.logback.rollingpolicy.clean-history-on-start
logging.file.max-size
→logging.logback.rollingpolicy.max-file-size
logging.file.total-size-cap
→logging.logback.rollingpolicy.total-size-cap
logging.file.max-history
→logging.logback.rollingpolicy.max-history
매핑되는 system environment properties는 다음과 같습니다.
ROLLING_FILE_NAME_PATTERN
→LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN
LOG_FILE_CLEAN_HISTORY_ON_START
→LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START
LOG_FILE_MAX_SIZE
→LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE
LOG_FILE_TOTAL_SIZE_CAP
→LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP
LOG_FILE_MAX_HISTORY
→LOGBACK_ROLLINGPOLICY_MAX_HISTORY
Default Servlet Registration
Spring Boot 2.4는 더 이상 당신의 servlet container에서 제공하는 것을 DefaultServlet
으로 등록하지 않습니다.
대부분의 application에서는 Spring MVC의 DispatcherServlet
이 필요한 유일한 servlet이기 때문에 사용되지 않습니다.
만약 default servlet이 여전히 필요한 경우 server.servlet.register-default-servlet
을 true
로 설정하여 사용할 수 있습니다.
HTTP traces no longer include cookie headers by default
Cookie
request header와 Set-Cookie
response header는 더 이상 HTTP trace에 기본 포함되지 않습니다.
Spring 2.3의 동작을 원하는 경우 management.trace.http.include
를 cookies, errors, request-headers, response-header
로 설정해야 합니다.
Undertow Path on Forward
기본적으로 Undertow는 요청이 전달될 때 원래 요청 URL을 유지합니다.
이 release는 Servlet 사양을 준수하기 위해 Undertow 기본값을 재정의합니다.server.undertow.preserve-path-on-forward
를 true
로 설정하여 이전 Undertow 기본 동작을 복원할 수 있습니다.
Neo4j
이번 release는 Neo4j 지원이 대폭 개편되었습니다.spring.data.neo4j.*
의 여러 properties가 제거되었고 Neo4j OGM 지원도 제거되었습니다.
Neo4j driver 구성은 spring.neo4j.*
를 통해 수행되지만 data namespace를 통한 URI와 기본적인 인증 설정은 더 이상 사용되지 않는 형태로 계속 지원됩니다.
이 변경 사항과 Spring Data Neo4j 6의 좀 더 자세한 내용은 Reference Documentation를 참고하세요.
Elasticsearch RestClient
Spring Boot에서 더 이상 low-level Elasticsearch RestClient
bean을 auto configure 처리하지 않습니다.
RestHighLevelClient
bean은 여전히 auto-configure 처리됩니다.
대부분의 사용자는 low-level client를 사용할 필요가 없으며 변경 사항의 영향을 받지 않아야 합니다.
R2DBC
R2DBC의 핵심 인프라가 Spring Framework의 새로운 spring-r2dbc
모듈로 이전되었습니다.
만약 이 인프라를 사용하고 있다면 deprecated 된 기능을 migrate 해야 합니다.
Flyway
Flyway 7로 변경 시 callback ordering에 대한 몇 가지 변경 사항이 포함됩니다.
이것은 우리가 @Order
및 Ordered
를 통해 지원 등록 순서에 의존하는 사람에게 많은 변경을 가져다줍니다.
Flyway 5를 사용하는 경우 Flyway는 기능 release에 대한 schema upgrade만 유지하므로 Spring Boot 2.4로 upgrade 하기 전에 Flyway 6으로 upgrade 해야 합니다.
Removal of Plugin Management for Flatten Maven Plugin
Spring Boot의 build는 더 이상 Flatten Maven Plugin을 사용하지 않습니다.
따라서 flatten-maven-plugin
의 plugin management 설정이 제거되었습니다.
만약 사용을 원한다면 따로 설정해야 합니다.
Version management for exec-maven-plugin
exec-management-plugin
의 version management는 제거되었습니다.
만약 사용하길 원하는 경우 pluginManagement
에 따로 설정해야 합니다.
Spring Boot Gradle Plugin
DSL을 위한 Spring Boot Gradle Plugin bootJar
task가 Property<String>
을 통해 mainClass
를 설정할 수 있도록 업데이트되었습니다.mainClassName
을 현재 아래처럼 사용하고 있는 경우
bootJar {
mainClassName 'com.example.ExampleApplication'
}
아래와 같이 mainClass
로 변경해야 합니다.
bootJar {
mainClass ' com.example.ExampleApplication '
}
Metrics export in integration tests
@SpringBootTest
는 더 이상 사용 가능한 모니터링 시스템을 구성하지 않으며 in-memory MetaRegistry
만 제공합니다.
만약 integration test의 일부로 metric을 내보내는 경우 @AutoConfigureMetrics
를 테스트에 추가하여 이전 동작을 복원할 수 있습니다.
Deprecations from Spring Boot 2.2 and 2.3
Spring Boot의 release 호환성 정책을 반영하여 Spring Boot 2.2에서 deprecated 된 코드가 Spring Boot 2.4에서 제거되었습니다.
Spring Boot 2.3에서 deprecated 된 code는 Spring Boot 2.5에서 제거될 예정입니다.
New and Noteworthy
configuration change log를 확인하세요
Spring Framework 5.3
Spring Boot 2.4는 Spring Framework 5.3을 사용합니다.
Spring Framework wiki에는 새 release에 대한 세부사항이 있는 what's new section이 있습니다.
Spring Data 2020.0
Spring Boot 2.4는 Spring Data release train의 2020.0을 포함합니다. (code name Ockham)
좀 더 자세한 내용은 이 Spring Data wiki를 참고하세요.
Neo4j
reactive repository를 지원하며 Neo4j driver에 대한 별도의 auto configuration에 의존합니다.
결과적으로 Spring Data를 사용하거나 사용하지 않고 Neo4j를 사용할 수 있습니다.
Neo4j에 대한 health check는 driver를 사용하며 Neo4j driver가 설정되어 있으면 사용할 수 있습니다.
reactive로 @Transactionl
의 사용을 원하는 경우 Neo4jReactiveTransactionManager
bean을 당분간 직접 구성해야 합니다.
@Bean(ReactiveNeo4jRepositoryConfigurationExtension.DEFAULT_TRANSACTION_MANAGER_BEAN_NAME)
public ReactiveTransactionManager reactiveTransactionManager(Driver driver,
ReactiveDatabaseSelectionProvider databaseNameProvider) {
return new ReactiveNeo4jTransactionManager(driver, databaseNameProvider);
}
R2DBC
entitiy를 통해 Reactive R2DBC 사용을 단순화하기 위해 R2dbcEntityTemplate
을 사용할 수 있습니다.
Java 15 Support
Spring Boot 2.4는 Java 15를 완벽하게 지원하고 이에 대해 테스트되었습니다.
지원되는 최소 버전은 Java 8입니다.
Custom property name support
constructor binding을 사용할 경우 property name은 parameter name을 통해 전달됩니다.
이때 java의 예약된 keyword를 사용하려는 경우 문제가 될 수 있습니다.
이제 이런 상황에서 다음과 같이 @Name
annotation을 사용할 수 있습니다.
@ConfigurationProperties(prefix = "sample")
public class SampleConfigurationProperties {
private final String importValue;
public SampleConfigurationProperties(@Name("import") String importValue) {
this.importValue = importValue;
}
}
이 예제에서는 sample.import
property가 전달됩니다.
Layered jar enabled by default
이번 release에서는 layered jar와 layertool을 포함하며 사용할 수 있고 default로 사용됩니다.
이렇게 되면 build pack을 사용하여 생성된 image의 효율성이 향상되고 사용자가 만든 custom Dockerfile을 만들 때 해당 기능을 활용할 수 있습니다.
Importing Additional Application Config
이제 spring.config.use-legacy-processing
을 true
로 설정하지 않는 한 기본 application.properties
또는 application.yml
에서 바로 추가 properties와 yaml 파일을 import 할 수 있습니다.spring.config.import
속성을 사용하여 Spring Environment
로 가져와야 하는 하나 이상의 추가 구성 파일을 지정할 수 있습니다.
좀 더 자세한 내용은 reference guide의 해당 섹션을 참고하세요.
또한 왜 이렇게 변경되었는지를 설명한 짧은 블로그도 있습니다.
Volume Mounted Config Directory Trees
spring.config.import
property는 kubernetes에서 일반적으로 사용되는 configuration tree를 가져오는 데에도 사용할 수 있습니다.
configuration tree는 key / value 쌍을 제공하는 방법 중 하나입니다.
각 쌍은 property key를 구성하는 파일 이름과 value를 제공하는 file contents로 해당 파일에 명시됩니다.
완전한 예제는 reference documentation을 참고하세요.
Importing Config Files That Have no File Extension
일부 cloud platform에서는 파일 확장자가 없는 파일만 volume mount 할 수 있습니다.
이러한 제약이 있다면 이제 Spring Boot에 contents type에 대한 힌트를 제공하여 이러한 파일을 가져올 수 있습니다.
예를 들어 spring.config.import=/etc/myconfig[.yaml]
은 YAML로 /etc/myconfig
를 로드합니다.
Origin Chains
Origin
interface가 getParent()
method와 함께 새롭게 업데이트되었습니다.
이를 통해 항목의 출처를 정확히 표시할 수 있는 전체 출처 체인을 제공할 수 있습니다.
예를 들어 spring.config.import
로 application.properties
에서 두 번째 파일을 import 할 수 있습니다.
이 두 번째 파일에서 로드된 properties의 Origin
에는 original import 선언을 다시 알려주는 parent가 있습니다.actuator/env
또는 actuator/configprops
actuator endpoint의 output으로 직접 확인할 수 있습니다.
Startup Endpoint
application의 startup 상태를 보여주는 startup
actuator endpoint가 신규 츄가 되었습니다.
endpoint는 시작하는 데 예상보다 오래 걸리는 bean을 파악하는데 도움이 될 수 있습니다.
이 작업은 최근 Spring Framework 5.3에 추가된 application startup traking feature를 기반으로 합니다.
좀 더 자세한 내용은 Spring Framework reference document에서 확인할 수 있습니다.
새로운 actuator API는 여기에 설명되어 있습니다.
Docker/Buildpack Support
Publishing Images
이제 Maven plugin spring-boot:build-image
goal과 Gradle plugin bootBuildImage
task가 Docker registry로 생성된 image를 publish 할 수 있습니다.
image publish를 위한 plugin 구성에 대한 자세한 내용은 Maven 및 Gradle plugin documentation을 참조하세요.
Authentication
Spring Boot의 buildpack 지원을 사용할 때 이제 builder 또는 또는 run image에 개인 인증 Docker regisitry를 사용할 수 있습니다.
username/password 및 token 기반 인증이 모두 지원됩니다.
Maven 및 Gradle documentation가 새로운 configuration에 대해 업데이트되었습니다.
Paketo Buildpack Defaults
Maven plugin spring-boot:build-image
goal과 Gradle plugin bootBuildImage
task를 default로 사용하는 image builder가 최신 Paketo image로 upgrade 되었습니다.
접근성 향상을 위해 Paketo image registry가 Google Container Registry에서 Docker Hub로 변경되었습니다.
Maven Buildpack Support
spring-boot:build-image
maven goal은 이제 모든 프로젝트의 module dependency를 "application" layer에 넣습니다.
즉, build에 여러 프로젝트 모듈이 있는 경우 이제 모두 동일한 layer에 있게 됩니다.
새로운 <includeModuleDependencies/>
와 <excludeModuleDependencies/>
elements를 사용하여 layer를 사용자 정의할 수 있도록 XML schema도 update 되었습니다.
자세한 내용은 Maven documentation를 참조하세요.
Gradle Buildpack Support
bootBuildImage
Gradle task는 이제 모든 프로젝트의 module dependency를 "application" layer에 넣습니다.
즉, build에 여러 프로젝트 모듈이 있는 경우 이제 모두 동일한 layer에 있게 됩니다.includeProjectDependencies()
와 excludeProjectDependencies()
를 DSL에 사용하여 layer를 사용자 정의할 수 있습니다.
자세한 내용은 Gradle documentation을 참조하세요.
Redis Cache Metrics
이제 Redis cache를 사용하는 경우 micrometer를 통해 cache statistics를 노출할 수 있습니다.
기록된 측정 항목에는 puts, gets, deletes 및 hits/misses를 포함합니다.
pending request 수와 lock wait duration 또한 기록됩니다.spring.cache.redis.enable-statistics
를 true
로 설정하여 사용할 수 있습니다.
Web Configuration Properties
web locale과 resource location 설정을 지원하기 위해 property가 추가되었습니다.
새로운 property는 다음과 같습니다.
spring.web.locale
spring.web.locale-resolver
spring.web.resources.*
actuator management endpoint 구성을 지원하기 위해 새 property가 추가되었습니다.
management.server.base-path
아래 항목은 더 이상 사용되지 않습니다.
spring.mvc.locale
spring.mvc.locale-resolver
spring.resources.*
management.server.servlet.context-path
Register @WebListeners in a way that allows them to register servlets and filters
Servlet @WebListener
class는 자체적으로 servlet과 filter를 등록하는 방식과 동일하게 등록이 가능합니다.
이전 버전의 Spring Boot는 javax.servlet.Registration.Dynamic
을 호출하여 등록하였습니다.
이는 Servlet specification (4.4) section이 적용되었음을 의미합니다.
ServletContextListener가 web.xml 또는 web-fragment.xml에서 선언되지 않았거나 @WebListener로 주석이 추가되지 않은 ServletContextListener의 contextInitialized method에 ServletContext가 전달된 경우, Servlet의 프로그래밍 방식 구성을 위해 ServletContext에 정의된 모든 method에 대해 UnsupportedOperationException이 throw 되어야 합니다.
Spring Boot 2.4에서는 더 이상 dynamic registration을 사용하지 않으며 따라서 ServletContextListener.contextInitialized
method로부터 event.getServletContext().addServlet(...)
과 event.getServletContext().addFilter(...)
를 호출하는 것이 안전합니다.
Slice test for Cassandra
additional test slice는 @DataCassandraTest
를 사용하여 Cassandra에 의존하는 component를 테스트하는 데 사용할 수 있습니다.
Cassandra Repository와 필수 요소만 default로 구성됩니다.
아래는 Testcontainer와 @DynamicProprtSource
를 사용한 예입니다.
@DataCassandraTest(properties = "spring.data.cassandra.local-datacenter=datacenter1")
@Testcontainers(disabledWithoutDocker = true)
class SampleDataCassandraTestIntegrationTests {
@Container
static final CassandraContainer<?> cassandra = new CassandraContainer<>().withStartupAttempts(5)
.withStartupTimeout(Duration.ofMinutes(2));
@DynamicPropertySource
static void cassandraProperties(DynamicPropertyRegistry registry) {
registry.add("spring.data.cassandra.contact-points",
() -> cassandra.getHost() + ":" + cassandra.getFirstMappedPort());
}
...
}
Flyway 7
이 release는 몇 가지 추가 properties를 제공하는 Flyway 7로 upgrade 됩니다.
opensource edition의 경우 다음 spring.flyway property를 추가했습니다.
url
user
password
"teams" edition을 사용하는 경우 다음을 사용할 수도 있습니다.
cherry-pick
jdbc-properties
oracle-kerberos-cache-file
oracle-kerberos-config-file
skip-executing-migrations
Configuration property for H2 Console’s web admin password
H2 console의 web admin password를 구성하기 위한 spring.h2.console.settings.web-admin-password
속성이 추가되었습니다.
password는 console의 기본 설정과 toole에 대한 접근을 제어합니다.
CqlSession-Based Health Indicators for Apache Cassandra
새로운 CqlSession
을 기반으로 한 CassandraDriverHealthIndicator
와 CassandraDriverReactiveHealthIndicator
health indicator가 추가되었습니다.
Cassandra의 Java Driver가 classpath에 있고 Spring Data Cassandra가 없는 경우 auto configure가 동작합니다.
Spring Data Cassandra가 classpath에 존재하는 경우 Spring Data Cassandra를 기반으로 한 health indicator가 사용됩니다.
Filtered Scraping with Prometheus
/actuator/prometheus
Prometheus endpoint가 actuator에 추가되었습니다.
includeNames
query parameter를 지원합니다.
좀 더 자세한 내용은 Actuator API documentation을 참고하세요.
Spring Security SAML Configuration Properties
SAML2 relying party registration의 decryption credential과 Assertion Consumer Service(ACS)를 구성할 수 있도록 properties가 추가되었습니다.
properites는 아래와 같은 heading을 가집니다.
spring.security.saml2.relyingparty.registration.decryption.*
spring.security.saml2.relyingparty.registration.acs.*
Failure Analyzers
이제 ApplicationContext
가 생성되지 않은 경우에도 FailureAnalizer가 고려됩니다.
이를 통해 Environment
처리 중에 발생한 모든 예외를 분석할 수도 있습니다.ApplicationContext
가 생성되지 않으면 BeanFactoryAware
또는 EnvironmentAware
를 구현하는 analyzer는 사용되지 않는다는 점에 유의하세요.
Jar Optimizations
runnable Spring Boot jar를 생성할 때 empty starter dependencies가 자동으로 제거됩니다.
대부분의 starter는 의존성 정보만 제공하기 때문에 최종 생성된 jar에 포함될 필요가 없습니다.
code가 포함되지 않은 자체 starter POM이 있는 경우 "dependencies-starter" 값을 사용하여 Spring-Boot-Jar-Type
항목을 MANIFEST.MF에 추가할 수 있습니다.
Miscellaneous
위에 나열된 변경 사항 외에도 다음과 같은 많은 사소한 조정 및 개선 사항이 있습니다.
- 이제 application이 실행 중인 JVM 버전을 log합니다.
logging.config
의 값에서 후행 공백은 자동으로 제거됩니다.- R2DBC pool support 관련 추가 configuration properties가 추가되었습니다.
LdapTemplate
내 Exception handing이 특정 exception을 무시하도록 설정할 수 있습니다.- ISO offset datetime format이 MVC와 Webflux에서 지원합니다.
- request mapping path pattern을 구문 분석하고 일치시키기 위해
AntPathMatcher
대신 추가된PathPatternParser
사용에 대한 선택을 위한 configuration property가 추가되었습니다. @DurationUnit
,@DataSizeUnit
,@PeriodUniit
을@ConstructorBinding
을 사용하여 constructor parameter로 사용할 수 있습니다.- auto configure의
RabbitConnectionFactory
가CredentialProvider
와CredentialRefreshService
가 있는지 확인합니다. - exclusion만 사용하여 health group을 정의 할 수 있습니다.
AbstractRoutingDataSource
는management.health.db.ignore-routing-data-source
를 사용하여 health check에서 무시될 수 있습니다.- SAML Relying party의 localEntityIdTemplate을 설정할 수 있습니다.
- HTTP trace가 nanosecond 정밀도로 측정됩니다.
- 전용
FailureAnalyzer
가 Liquibase changelog가 누락된 경우 의미있는 메시지를 제공합니다. - Netty의 request decoder를
server.netty.*
속성을 사용하여 custom 설정할 수 있습니다. - Spring Boot version manage의 Liquibase 버전과 Liquibase Maven Plugin의 Plugin management를 일치시켰습니다.
- Prometheus PushGateway에 대한 기본 인증을 지원합니다.
- Jedis와 Lettuce를 모두 사용할 수 있는 경우
spring.redis.client-type
을 사용하여 Jedis를 선택할 수 있습니다. spring.redis.lettuce.cluster.refresh.dynamic-sources
를 사용하여 Redis Clluster dynamic source 새로고침을 비활성화 할 수 있습니다.- reference documentation이 이제 모든 configuration example에 대해
Properties
와YAML
를 포함합니다. spring.rsocket.fragment-size
property를 사용하여 RSocketServer의 fragment size를 설정할 수 있습니다.logging.charset.console
과logging.charset.file
property를 사용하여 Logback과 Log4j의 charset을 설정할 수 있습니다.- Gradle 6.7 이상의 버전으로 Spring Boot application을 빌드할 경우 Gradle의 configuration cache가 지원됩니다.
Dependency Upgrades
여러 Spring project가 신규 버전으로 변경됩니다.
- Spring AMQP 2.3 (what’s new)
- Spring Batch 4.3 (what’s new)
- Spring Data 2020.0 (changelog)
- Spring Framework 5.3 (what’s new | upgrading)
- Spring Integration 5.4 (what’s new)
- Spring HATEOAS 1.2 (migration guide)
- Spring Kafka 2.6 (what’s new)
- Spring Retry 1.3
- Spring Security 5.4 (what’s new)
- Spring Session 2020.0
많은 third party dependency도 업데이트 되었으며 그 중 주요 업데이트 사항은 아래와 같습니다.
- Artemis 2.13
- AssertJ 3.18
- Cassandra Driver 4.7
- Elasticsearch 7.9
- Flyway 7
- Jersey 2.31
- JUnit 5.7
- Liquibase 3.10
- Lettuce 6.0 (release notes)
- Micrometer 1.6 (release notes)
- Mockito 3.4
- MongoDB 4.1
- Oracle Database 19.7
- Reactor 2020.0 (release notes)
- RSocket 1.1
- Undertow 2.2
Deprecations in Spring Boot 2.4
ConfigFileApplicationListener
가ConfigDataEnvironmentPostProcessor
에서 deprecated 되었습니다.contextFactory
의 대안으로 사용되었던contextClass
와 관련된SpringApplicationBuilder
및SpringApplication
method가 deprecated 되었습니다.CloudFoundryVcapEnvironmentPostProcessor
의 일부 method가EnvironmentPostProcessor
update와 함께 deprecated 되었습니다. (대부분의 사용자에게 영향을 미침)BuildLog
build pack support class의 몇 가지 method는 더 이상 사용하지 않고 더 자세한 정보를 제공하는 대안으로 대체 되어 deprecated 되었습니다.LoggingSystemProperties
의 Logback constants가LogbackLoggingSystemProperties
를 위해 더 이상 사용되지 않습니다.UndertowServletWebServerFactory
의isEagerInitFilters
/setEagerInitFilters
method가isEagerFilterInit
/setEagerFilterInit
로 대체되었습니다.ApplicationEnvironmentPreparedEvent
,ApplicationStartingEvent
,SpringApplicationRunListener
의 몇몇 method가BootstrapContext
를 지원하기 위해 deprecated 되었습니다.- buildpack 지원을 위한
BuildLog
가 더 많은 데이터를 지원하도록 업데이트 되었습니다. (대부분의 사용자는 이 class를 직접 사용하지 않습니다.) - 일부 Spring MVC 및 Servlet 특정 속성은 더 이상 사용되지 않습니다. (위의 Web Configuration Properties section 참조)
- SpringData Cassandra를 사용하는 health indicator는 raw driver를 사용하는 health indicator를 위해 더이상 사용되지 않습니다.
'Study > Java' 카테고리의 다른 글
[troubleshooting] org.apache.maven.plugin.MojoExecutionException: Input length = 1 에러 확인 방법 (0) | 2021.02.25 |
---|---|
Spring Boot Logging (0) | 2021.01.04 |
Upgrading to Spring Framework 5.3 (0) | 2020.12.01 |
What's New in Spring Framework 5.3 (0) | 2020.12.01 |
Spring Boot Config Data Migration Guide (0) | 2020.11.18 |
Spring Boot @ConditionalOnBean 조건 사용 시 주의해야할 점 (0) | 2020.10.22 |
JDK 15 New Features (0) | 2020.10.13 |
STS (Eclipse)에서 Language Server 동작 비활성화 하기 (0) | 2020.10.05 |
eclipse workspace 위치에 git directory를 바로 clone하여 사용하지 말 것 (0) | 2020.07.30 |
spring-asciidoctor-extensions 사용해 보기 (0) | 2020.07.17 |