programing

스프링 부트: 여러 yml 파일 사용 방법

megabox 2023. 2. 23. 22:41
반응형

스프링 부트: 여러 yml 파일 사용 방법

스프링 부트에서는 application.properties를 application.yml로 대체하고 YAML 형식을 사용할 수 있습니다.하지만 제 application.yml이 복잡해져서 조금 나눠야 합니다.내가 어떻게 그럴 수 있을까?저는 다음과 같은 것을 하고 싶습니다.

...
@Configuration
@EnableAutoConfiguration
@EnableWebMvc
@EnableScheduling
@PropertySource({"classpath:application.yml", "classpath:scheduling.yml"})
public class ApplicationConfig {
...
  1. 제거한다.@PropertySource주석, 필요 없습니다.
  2. 사용자 이름 변경scheduling.yml안으로src/main/resources/application-scheduling.yml
  3. 추가하다src/main/resources/application.yml파일 다음 행:

    spring.profiles.include: 'scheduling'

@PropertySource는 YAML을 지원하지 않습니다(아마도 봄 4.1부터 지원 예정).설정할 수 있습니다.spring.config.location또는spring.config.name쉼표로 구분된 목록(예: 시스템 속성 또는 명령줄 인수)으로 이동합니다.

개인적으로 저는 모든 YAML이 같은 장소에 있는 것이 좋습니다(이 구조는 시각적으로 매우 유용하며 파일 내의 문서를 사용하여 더 분할할 수 있습니다).그냥 맛인 것 같아요.

구성 및/또는 환경이 많은 경우 보통 다음과 같이 수행합니다.

$ cat src/main/resources/application.yml:
spring:
  profiles:
    include: >
      profile1,
      profile2,
      ...
      profileN

$ ls -lah src/main/resources/config:
drwxr-xr-x  4 mak  staff   136B Apr 16 23:58 .
drwxr-xr-x  6 mak  staff   204B Apr 17 01:54 ..
-rw-r--r--  1 mak  staff    60B Apr 16 23:58 application-profile1.yml
-rw-r--r--  1 mak  staff    62B Apr 16 23:16 application-profile2.yml
...
-rw-r--r--  1 mak  staff    50B Apr 16 23:16 application-profileN.yml

응용 프로그램에 4개의 .yml 파일이 필요하다고 가정합니다.

application.yml
application-dev.yml
application-uat.yml
application-prod.yml

파일마다 다른 설정을 해야 합니다.

dev, uat ot prod level 등 적절한 환경에서 설정을 하면 됩니다.또, 는, 1개의 속성만을 추가할 필요가 있습니다.application.yml파일.

  spring:  
    profiles:
       active: dev
    application: /* optional */
       name: Application Name 

메인 yaml 파일에서 활성 프로파일 개념을 사용할 수 있습니다.예를 들어 다음과 같습니다.

spring.profiles.active: test

그 말은 즉, 당신이application-test.yml파일을 리소스 디렉토리에 저장합니다.활성 프로파일은 기본 yaml 파일에서 이름이 같은 속성을 덮어씁니다.

상세한 것에 대하여는, http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html 를 참조해 주세요.

언급URL : https://stackoverflow.com/questions/23134869/spring-boot-how-to-use-multiple-yml-files

반응형