Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

release 2.1.0.RELEASE

honeymon edited this page Jun 20, 2019 · 1 revision

Spring Boot 2.1.0.RELEASE

요약

  • 스프링 부트 2.1.0.RELEASE 는 스프링 프레임워크 5.1.0.RELEASE 포함

    • 스프링 프레임워크 5.1.0.RELEASE

      • Java EE 8 지원 → 라이브러리 버전 하한선 상승

      • 중첩 구성 클래스 탐색방식 변경

      • 스프링 부트 스프링빈 중복 생성정책 변경

    • 스프링 부트 2.1.0.RELEASE

      • 스프링빈 중복 허용여부 spring.main.allow-bean-definition-overriding 속성 제공

스프링 프레임워크 변경사항

보다 자세한 사항은 아래 링크를 참고하자:


Important

스프링 프레임워크 5.1.0 은 빈을 등록하는 과정에서 발생하는 오버헤드(지연)를 발생시키는 요소들을 강제로 배제시키는 정책이 적용되었다.

타입(Type) 수준에 선언된 @Component 혹은 @Configuration 만 컴포넌트 스캔으로 탐색한다. 스프링 프레임워크 5.1.0 부터는 아래처럼 작성한 구성 클래스는 @Import({BaseConfig.class}) 를 호출해도 탐색되지 않는다.

public class BaseConfig {
 @Profile("stub")
 @Configuration
 public static class StubConfig {
 @Bean
 public BaseService baseService() {
 return new BaseServiceStub();
 }
 }
 @Profile("!stub")
 @Configuration
 public static class ImplConfig {
 @Bean
 public BaseService baseService() {
 return new BaseServiceImpl();
 }
 }
}

위와 같은 형태로 정의한 일반 클래스 안에 구성 클래스를 탐색하는 정책이 변경되었다.

스프링 프레임워크 5.1.0 전에는 다음과 같이 선언해도 BaseConfig.StubConfigBaseConfig.ImplConfig 를 탐색했지만 스프링 프레임워크 5.1.0 이후에는 적용되지 않는다.

@Import({BaseConfig.class})
public class AppConfig {
 // 생략
}

다음과 같이 중첩클래스를 명시적으로 선언하거나

@Import({BaseConfig.StubConfig.class, BaseConfig.ImplConfig.class})
public class AppConfig {
 // 생략
}

다음과 같이 @ComponentScan 에서 패키지를 명시하는 방식을 사용해야 한다.

@ComponentScan(basePackages = {"io.honeymon.boot.springboot.config"})
public class AppConfig {
 // 생략
}

스프링 부트

스프링 부트 2.1.0 에서는 스프링빈이 개발자 모르게 덮어쓰이는 상황을 피할 수 있도록 spring.main.allow-bean-definition-overriding 조건을 추가하고 이 속성을 false 로 정의하여 비활성화시킨다.

Note

프로파일에 따라서 동일한 이름의 빈을 다른 클래스로 생성하는 경우 문제에 부딪칠 수 있다.

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /