Spring

스프링 부트 2.4.0 버전에 프로필 포함

기록만이살길 2022. 12. 1. 18:04
반응형

스프링 부트 2.4.0 버전에 프로필 포함

1. 질문(문제점):

개발자로서 로컬 개발 환경에서 기본 dev프로필을 사용합니다. 다음은 내 application-dev.properties파일의 일부입니다.

# Profiles    
spring.profiles.include=auth

이전에는 Spring Boot 2.3.0.RELEASE를 사용했고 spring.profiles.include속성에는 auth런타임에 프로필이 포함되었습니다.

하지만 Spring Boot 2.4.0으로 마이그레이션한 후 auth프로필을 사용할 수 없습니다. spring.profiles.include속성이 이전처럼 작동하지 않는 것 같습니다.

마이그레이션 전과 동일한 결과를 얻을 수 있도록 프로필을 구성하는 방법을 알려주십시오. (여기서는 프로필 그룹을 사용하고 싶지 않습니다.)

미리 감사드립니다!

2. 해결방안:

구성 처리가 호환되지 않는 방식으로 변경되었고 "레거시" 처리 방식을 사용하려는 경우 다음을 설정하여 다시 활성화할 수 있습니다.

spring.config.use-legacy-processing=true

또는 YAML을 사용하여:

spring:
  config:
    use-legacy-processing: true

이는 구성 처리를 2.3.x동등한 것으로 되돌려야 합니다. 그러나 이 속성은 프로파일 구성의 마이그레이션을 용이하게 하기 위한 목적으로만 존재 2.3.x하며 향후 주요 릴리스 12.4.x 에서 더 이상 사용되지 않고 제거될 가능성이 높 으므로 여전히 최대한 빨리 마이그레이션해야 합니다. 이 변경의 이유와 몇 가지 추가 정보를 이해하려면 계속 읽으십시오.

에서 주목할 2.4.0만한 것은 다음 두 가지 패러다임입니다.

따라서 Spring Boot 2.4에서는 속성 및 YAML 파일이 로드되는 방식에 두 가지 중요한 변경 사항을 적용할 계획입니다.

  1. 문서는 정의된 순서대로 로드됩니다.

  2. 프로필 특정 문서에서 더 이상 프로필을 활성화할 수 없습니다.

이 변경으로 인해 what-overrides-what-when 논리가 소화하기 훨씬 더 간단해졌지만 일부 기능을 비활성화해야 했습니다. 예를 들어:

my.prop: test

---
spring.profiles: prodprops
my.prop: prod

---
spring.profiles: prod
# no longer works - activating a profile from a profile-specific document!
spring.profiles.include: prodprops
  

구성이 더 이상 허용되지 않는 프로필 관련 문서에서 프로필을 활성화하려고 시도하므로 예외가 발생합니다.

이 사용 사례(및 기타)를 다루기 위해 프로필 그룹 이 기능으로 추가되었습니다. 즉, 이전 동작을 활성화하려면 다음과 같이 프로필 그룹을 만들어야 합니다.

spring.profiles.group.<group>=dev, auth

또는 YAML에서:

spring:
  profiles:
    group:
      <group>: dev, auth

<group>선택한 프로필 그룹의 이름은 어디에 있습니까 ? 이름이 모두 다른 여러 그룹을 정의할 수 있습니다. 그런 다음 프로필 을 사용하여 애플리케이션을 시작하면 <group>해당 그룹의 일부인 모든 프로필이 활성화되어야 합니다.

참고로 Spring Boot 는 다음과 같은 다중 문서 속성2.4.0 파일 에 대한 지원을 추가했습니다 .

test=value
spring.profiles.active=local
#---
spring.config.activate.on-profile=dev
test=overridden value

문서 구분 기호( #---)에 유의하십시오. 이를 통해 .properties파일에서와 같이 파일 에서 유사한 재정의 논리를 가질 수 .yml있습니다.

다시 말하지만, 이 정보 및 기타 정보는 관련 업데이트 게시물 에서 제공됩니다 .

12.5.0 이전의 사용 중단이 지표인 경우 속성은 빠르거나 2.6.0늦어도 제거되어야 하며 후자가 더 가능성이 높습니다(현재 사용 중단 2.5.x).

반응형