[SpringBoot] spring boot application.properties/yaml profile 설정

2021. 9. 3. 00:29개발공부/SpringBoot

spring boot application.properties/yaml profile 설정

1) Externalized Configuration(application.properties/yaml)

spring boot는 설정들을 편리하게 주입할 수 있게 application.properties / yaml
이용한 외부 설정(Externalized configuration)이 가능합니다.

SpringApplication은 properties를 다음 경로에 위치한 application.properties로부터
읽어들여 스프링 환경설정에 추가합니다.

  • 현재 디렉토리의 /config 서브 디렉토리
  • 현재 디렉토리
  • /config 패키지의 classpath
  • classpath root
    (위에서 밑으로 설정이 적용되는 우선순위입니다.)

2) profiles 설정

그리고 dev, production, stage, local 등 build나 테스트 환경에 따라
profile을 나눠 관리해서 사용이 가능한데, 회사 프로젝트에서 yaml의 profiles를 사용
하다 properties로 변경해볼 기회가 생겨 차이점을 알게 돼 공유하려 합니다.
yaml의 경우 profiles를 아래처럼 spring:profiles:group:spring:config:activate:on-profile
이용해 그룹화가 가능하단 장점이 있었습니다.


spring:
  profiles:
    group:
        stage:
        - "test"
        - "common"
---
#local, dev, prod 공통 설정
spring:
    config:
        activate:
            on-profile: "common"

반면 비교적 갈수록 사용자들이 적어지고 있는 properties의 경우 네이밍 컨벤션을 지켜
application-{profile}.properties로 명명해주면 애플리케이션을 실행할 때
지정한 active profile 이름과 연동해 해당 properties 파일을 Run 해줍니다.

3) profiles 적용

IntelliJ Ultimate 버전은 편리한 Run/Debug 환경설정 GUI를 제공해줍니다.
(Community 사용자의 경우 jojoldu님의 블로그 를 참고하시기 바랍니다.)
Run -> Edit configuration -> Spring Boot -> Active profiles

image


참고자료 :
spring.io - 21.Externalized Configuration(for .properties)

'개발공부 > SpringBoot' 카테고리의 다른 글

[번역자료] spring boot Logback(로그)  (0) 2021.09.17
logger spring xml  (0) 2021.07.01
String Boot - Test Driven Development(TDD)  (0) 2020.07.17
Spring Boot - Orientation  (0) 2020.07.14