파란하늘의 지식창고
Published 2020. 11. 14. 03:23
Spring Boot 2.4 Release Notes Study/Java
반응형

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

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


Spring Boot 2.4 Release Notes

Spring Boot 2.4 Release Note의 내용을 한글로 번역한 글입니다.

spring-projects/spring-boot

 

spring-projects/spring-boot

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

github.com

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.propertiesapplication.yml 파일이 처리되는 방식이 변경되었습니다.
단순히 application.propertiesapplication.yml 파일만 사용하는 경우 업그레이드가 원활합니다.
하지만 복잡한 설정 (profile specific properties 또는 profile active properties)을 사용하는 경우 새 기능을 사용하려면 몇 가지 변경이 필요할 수 있습니다.
Spring Boot 2.3 호환 처리를 원하는 경우 application.propertiesapplication.yml 파일에 spring.config.use-legacy-processing 속성을 true로 설정하면 됩니다.

Config Data Imports

spring.config.locationspring.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-namelogging.logback.rollingpolicy.file-name-pattern
  • logging.file.clean-history-on-startlogging.logback.rollingpolicy.clean-history-on-start
  • logging.file.max-sizelogging.logback.rollingpolicy.max-file-size
  • logging.file.total-size-caplogging.logback.rollingpolicy.total-size-cap
  • logging.file.max-historylogging.logback.rollingpolicy.max-history

매핑되는 system environment properties는 다음과 같습니다.

  • ROLLING_FILE_NAME_PATTERNLOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN
  • LOG_FILE_CLEAN_HISTORY_ON_STARTLOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START
  • LOG_FILE_MAX_SIZELOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE
  • LOG_FILE_TOTAL_SIZE_CAPLOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP
  • LOG_FILE_MAX_HISTORYLOGBACK_ROLLINGPOLICY_MAX_HISTORY

Default Servlet Registration

Spring Boot 2.4는 더 이상 당신의 servlet container에서 제공하는 것을 DefaultServlet으로 등록하지 않습니다.
대부분의 application에서는 Spring MVC의 DispatcherServlet이 필요한 유일한 servlet이기 때문에 사용되지 않습니다.
만약 default servlet이 여전히 필요한 경우 server.servlet.register-default-servlettrue로 설정하여 사용할 수 있습니다.

HTTP traces no longer include cookie headers by default

Cookie request header와 Set-Cookie response header는 더 이상 HTTP trace에 기본 포함되지 않습니다.
Spring 2.3의 동작을 원하는 경우 management.trace.http.includecookies, errors, request-headers, response-header로 설정해야 합니다.

Undertow Path on Forward

기본적으로 Undertow는 요청이 전달될 때 원래 요청 URL을 유지합니다.
이 release는 Servlet 사양을 준수하기 위해 Undertow 기본값을 재정의합니다.
server.undertow.preserve-path-on-forwardtrue로 설정하여 이전 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에 대한 몇 가지 변경 사항이 포함됩니다.
이것은 우리가 @OrderOrdered를 통해 지원 등록 순서에 의존하는 사람에게 많은 변경을 가져다줍니다.
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-processingtrue로 설정하지 않는 한 기본 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.importapplication.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 구성에 대한 자세한 내용은 MavenGradle plugin documentation을 참조하세요.

Authentication

Spring Boot의 buildpack 지원을 사용할 때 이제 builder 또는 또는 run image에 개인 인증 Docker regisitry를 사용할 수 있습니다.
username/password 및 token 기반 인증이 모두 지원됩니다.
MavenGradle 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-statisticstrue로 설정하여 사용할 수 있습니다.

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을 기반으로 한 CassandraDriverHealthIndicatorCassandraDriverReactiveHealthIndicator 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을 가집니다.

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의 RabbitConnectionFactoryCredentialProviderCredentialRefreshService가 있는지 확인합니다.
  • exclusion만 사용하여 health group을 정의 할 수 있습니다.
  • AbstractRoutingDataSourcemanagement.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에 대해 PropertiesYAML를 포함합니다.
  • spring.rsocket.fragment-size property를 사용하여 RSocketServer의 fragment size를 설정할 수 있습니다.
  • logging.charset.consolelogging.charset.file property를 사용하여 Logback과 Log4j의 charset을 설정할 수 있습니다.
  • Gradle 6.7 이상의 버전으로 Spring Boot application을 빌드할 경우 Gradle의 configuration cache가 지원됩니다.

Dependency Upgrades

여러 Spring project가 신규 버전으로 변경됩니다.

많은 third party dependency도 업데이트 되었으며 그 중 주요 업데이트 사항은 아래와 같습니다.

Deprecations in Spring Boot 2.4

  • ConfigFileApplicationListenerConfigDataEnvironmentPostProcessor에서 deprecated 되었습니다.
  • contextFactory의 대안으로 사용되었던 contextClass와 관련된 SpringApplicationBuilderSpringApplication method가 deprecated 되었습니다.
  • CloudFoundryVcapEnvironmentPostProcessor의 일부 method가 EnvironmentPostProcessor update와 함께 deprecated 되었습니다. (대부분의 사용자에게 영향을 미침)
  • BuildLog build pack support class의 몇 가지 method는 더 이상 사용하지 않고 더 자세한 정보를 제공하는 대안으로 대체 되어 deprecated 되었습니다.
  • LoggingSystemProperties의 Logback constants가 LogbackLoggingSystemProperties를 위해 더 이상 사용되지 않습니다.
  • UndertowServletWebServerFactoryisEagerInitFilters/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를 위해 더이상 사용되지 않습니다.
반응형
profile

파란하늘의 지식창고

@Bluesky_

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