[Spring] profile 환경 분리

klmin·2024년 8월 29일
  • version : spring boot 3.3
  • jdk : 21

스프링 부트로 프로젝트를 구축하면 환경, db별로 분리해서 사용할 경우가 있다.

application-yml

기본적으로 application.yml을 로드하게 되어있고 그 안에서 profile별 설정들을 지정할 수 있다.

spring.profiles.active - 기본적으로 적용할 파일명(ex: local -> application-local.yml)

group - local, test, dev, prod 4단계로 선언해놨으며 profile에 해당하는 그룹이 실행되고

-local
-local2 이런식으로 여러 파일을 지정할수있다.

include - 항상 포함할 파일명

spring.config.activate.on-profile로 인식할 profile들을 정의한다.
현재 db와 profile 폴더를 만들어서 선언해놓았고 기본적으로
application-{profile}.yml을 읽게되어있어 import로 인식할 위치를 지정해주었다.

application-local.yml

application-dev.yml

환경별 로딩만 볼 목적으로 path와 port만 나눴다.

application-db.yml

db별 설정을 나눠놨다.

application-common.yml

기본적인 하이버네이트 설정만 적용해놓았다.

application-maria.yml

application-h2.yml

디비 설정 정보와 하이버네이트 설정만 나눠놓았다.

Run/Debug Configuration에 진입해서

Active Profile에 옵션을 설정해놓으면 예시에는 local, maria


선언해놓은 local, maria와 include로 선언한 db와 common이 인식된다.

contextpath로 선언한 local과 8080 port도 확인할 수 있다.

테스트 코드에서는 이런식으로 @ActiveProfiles에 바꿔서 사용할 수 있다.

dev, postgres 옵션을 준다면


postgres와 port, contextpath가 바뀐걸 확인할 수 있다.

profile
웹 개발자

0개의 댓글