반응형
spring boot는 환경 설정을 application.properties 또는 application.yml로 설정합니다.
한편, 개발을 하다 보면 로컬 서버, 개발서버, 운영서버 등에서 프로그램을 실행해야 하는데 매번 이 설정 파일을 수정하는 건 번거롭습니다. 특히 운영서버에서 설정을 바꾸다 잘못되면 심각한 문제가 발생하기도 합니다.
이때, yml의 경우 다음과 같이 파일 내에서 구분자(---)와 profiles 옵션으로 간단하게 처리할 수 있습니다.
# local, dev, prod 공통 설정
server:
port: 8080
---
spring:
profiles: local
datasource:
url: "jdbc:mysql://local-server/local"
username: "dbuser"
password: "dbpass"
---
spring:
profiles: dev
datasource:
url: "jdbc:mysql://dev-server/dev"
username: "dbuser"
password: "dbpass"
---
spring:
profiles: prod
datasource:
url: "jdbc:mysql://prod-server/prod"
username: "proddbuser"
password: "proddbpass"
단, spring.profiles 옵션은 spring boot 2.4부터 deprecated 되었습니다.
대신 spring.profiles.group 옵션이 추가되었습니다.
사용방법은 다음과 같이 group을 설정한 후에 jar를 실행할 때 profile을 선택해서 실행하면 됩니다.
spring:
profiles:
group:
"local": "local_db,common"
"dev": "dev_db,common"
"prod": "prod_db,common"
---
spring:
config:
activate:
on-profile: "common"
# local, dev, prod 공통 설정
server:
port: 8080
---
spring:
config:
activate:
on-profile: local_db
datasource:
url: "jdbc:mysql://local-server/local"
username: "dbuser"
password: "dbpass"
---
spring:
config:
activate:
on-profile: dev_db
datasource:
url: "jdbc:mysql://dev-server/dev"
username: "dbuser"
password: "dbpass"
---
spring:
config:
activate:
on-profile: prod_db
datasource:
url: "jdbc:mysql://prod-server/prod"
username: "proddbuser"
password: "proddbpass"
아래와 같이 prod로 실행하게 되면 prod 그룹인 prod_db와 common 두개의 프로파일들을 한번에 실행할 수 있습니다.
java -jar test.jar --spring.profiles.active=prod
만약 intellij 에서 실행하고자 할 때는 다음과 같이 하면 됩니다.
- Run > Edit Configurations... 선택
- Spring Boot Application 선택
- Active profiles 에서 원하는 profile 명을 입력 후 실행
728x90
반응형
'웹 개발' 카테고리의 다른 글
AOP에서의 모든 메서드 로깅과 Custom Annotation을 활용한 No Logging 처리 (0) | 2022.05.01 |
---|---|
java - mkdir와 mkdirs의 차이 (0) | 2022.05.01 |
spring boot package does not exist error (0) | 2022.04.17 |
input, form 태그에 브라우저의 자동완성 기능 해제하는 방법 (0) | 2022.04.17 |
Spring Boot에서 JWT 사용하는 방법 (0) | 2022.04.10 |