인텔리제이에서 Run/Debug Configuration을 들어가면 Configuration에서 지정할 수 있는 옵션중에 다음 3가지가 있다.
스프링부트에서 프로파일을 지정하고 싶어서 spring.profiles.active=dev 옵션을 주고 싶은데 지정할 포인트가 3가지나 있으니 혼란스러워 정리해보고자 한다.
VM options
JVM이 어플리케이션을 구동시키면서 참고할 옵션을 지정한다.
Intellij로 스프링부트 어플리케이션을 구동시 ‘dev’ 프로파일 설정을 주고 싶다면 -Dspring.profiles.active=dev 옵션을 지정한다.
콘솔화면 상단의 실행 커맨드에서 -D로 옵션이 지정되는걸 볼 수 있다.
Program arguments
자바 메인함수에 String[] args에 바인딩 될 프로그램 파라미터이다.
Intellij에서 옵션을 지정하면 콘솔화면 상단의 실행 커맨드에서 메인클래스 뒤에 인자로 들어가는걸 볼 수 있다.
spring.profiles.active=dev 로 지정시 메인함수의 String[] args 안에 spring.profiles.active=dev 문자열 자체가 들어가기는 하지만 스프링부트에서 프로파일로 인식되지는 않는다.(기본 default 프로파일로 동작한다.)
스프링부트에서 외부설정으로 인식되게 하기 위해서는 --spring.profiles.active=dev 처럼 ‘-‘를 2개 붙혀서 옵션을 줘야한다. 1개도 안된다 꼭 2개로 주자.
Environment variables
어플리케이션 구동시 OS의 환경변수에 더해서 지정해 줄 수 있는 key=value 옵션이다.
여러개를 지정하고 싶으면 세미콜론(;)으로 구분하여 지정한다. 설정에서 OS의 환경변수를 모두 제외시킬 수도 있다.
스프링부트 프로파일 옵션을 주고 싶다면 spring.profiles.active=dev 을 입력하며 된다.
3가지 방법으로 모두 프로파일 지정이 가능하며, 각기 다른 프로파일을 지정해서 우선순위를 테스트 해보면 Program arguments로 지정한 프로파일로 스프링부트가 동작한다.
두번째는 VM options, 마지막은 Environment variables 이다.
- VM options : -Dspring.profiles.active=dev
- Program arguments : —spring.profiles.active=dev « 우선순위가 제일 높다.
- Environment variables : spring.profiles.active=dev
읽어주셔서 감사합니다. 도움이 되셨다면 광고 클릭 부탁드립니다.
모두 힘내세요! : )
'개발 > 기타' 카테고리의 다른 글
Camel case, Kebab case, Snake case 그리고 Pascal case (0) | 2020.12.16 |
---|---|
웹 템플릿 엔진(Web Template Engine) (0) | 2020.12.08 |
Quartz misfireThreshold (2) | 2020.12.06 |
패스워드 암호화에 대해서 (0) | 2020.12.06 |
LastModified 헤더를 이용한 파일변경 체크 (0) | 2020.12.06 |