일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 알고리즘기본개념
- JUnit
- BFS
- SSAFY
- database
- DP
- 싸피
- 코딩테스트실력진단
- 부분수열의합2
- SWEA
- 기본유형
- 자바
- 그래프
- Spring
- 코드트리
- 그리디
- 다시보기
- 다익스트라
- 완전탐색
- 코테
- 코딩테스트
- 완탐
- DFS
- Java
- 백준
- Union Find
- 트러블슈팅
- JPA
- 알고리즘
- 유니온파인드
- Today
- Total
HwangHub
[Spring] profiles 설정 (spring boot 2.4 버전 이후) 본문
우리가 프로젝트를 진행할 때, 로컬 환경에서 테스트할 때와 개발 단계에서 프론트엔드와의 협업을 위해 개발 서버에 배포할 때나, 그리고 실제 릴리즈를 진행했을 때 모두 그 실행 환경이 다른 경우가 많다.
따라서 스프링에서는 이를 "프로파일 분리"라는 개념으로 환경 설정을 구분하여 적용할 수 있게 하였다. 근데 이게 스프링부트 버전업이 진행됨에 따라, 2.4버전에서 급격하게 변화가 있었나보다. 단적인 예시로, 이전에는 spring.profiles 또는 include를 이용하여 프로파일 설정을 하였다고 한다.
나는 미래를 살아가는 개발자로서, 굳이 deprecated된 기능을 연구해볼 필요는 없을 것 같고, 현재 어떻게 활용할 수 있는지만 보려고 한다. (물론 과거의 패턴 또한 알면 좋지만, 내가 지금 알아야 할 것이 이것 뺴고도 정말 많기에 우선은 넘어간다.)
스프링부터 2.4이상 버전에서는 작성 방법이 약간 달라진다.
- spring.profiles가 아닌 spring.config.activate.on-profile로 설정해주어야 한다.
- spring.profiles.group을 통해 프로필 그룹을 정의할 수 있다. (include대신 group을 사용한다)
spring.profiles와 spring.config.active.on-profile을 동일하게 사용하면 된다.
# appliation.yml example
spring:
config:
activate:
on-profile: local
group을 지정하는 방법도 거의 비슷
아래 설정을 예를 들어 설명하자면, spring.profiles.group.[groupname]으로 설정한다.
localdb와 localpath도 각각 프로필로 정의한 값들이다. 그리고 실행할 프로필은 [groupname]이 된다.
아래와 같이 설정한 경우에는 -Dspring.profiles.active=local로 활성 프로필을 설정하면,
자동으로 localdb와 localpath프로필에 설정된 값이 포함되어 실행된다.
spring:
profiles:
group:
local:
- localdb
- localpath
프로필을 설정한 후에는 항상 spring.profiles.active설정을 해야한다.
bootRun
gradle bootRun -Dspring.profiles.active=local
빌드할 때
(테스트 코드 실행 시 프로필 설정이 필요한 경우에만)
gradle build -Dspring.profiles.active=local
Jar 실행할 때
java -jar -Dspring.profiles.active=local [jar_name].jar
출처: https://gaemi606.tistory.com/entry/Spring-Boot-profile%EC%84%A4%EC%A0%95
'DEV-STUDY > Spring' 카테고리의 다른 글
[JUnit] MockMVC로 Controller 테스트하기 (0) | 2023.07.26 |
---|---|
[Spring] entity field에 wrapper class를 사용하는 이유 (0) | 2023.07.20 |
[Gradle] java-library 플러그인, implementation()과 api() 차이 (0) | 2023.07.17 |
[JPA] Data JPA 기초 (0) | 2023.06.30 |
[JPA] OSIV (0) | 2023.06.28 |