자바 & 스프링 실행 명렁어에서 속성값을 변경하는 실행 커맨드(how to change property when use java -jar command with option)
| 문제
스프링 부트 프로젝트를 하면서 application.yml 내의 프로퍼티값을 변경 & 추가해주어야 하는 상황이 발생했다.
| 해결
보통 war 파일을 실행할 때 java -jar file.war 로 실행한다.
이때, -Drun.arguments=–{프로퍼티명=값} 을 추가해주면 application.yml 내의 값이 변경 & 추가가 된다.
처음에는 -D프로퍼티명=값 으로 했는데 적용이 안되었다.
그래서 찾아보니 -D 는 시스템 프로퍼티를 설정하는 옵션이라고 한다.
그래서 시스템 프로퍼티인 run.arguments 를 사용하여 커스텀 프로퍼티를 넘겨주니 잘 된다.
주의할 점은 스프링부트의 메인 함수에서 다음과 같이 작성이 되어있어야 한다.
| 소스 코드
java -jar -Drun.arguments=--test.test=test application.war
public static void main(String[] args) {
// args 를 반드시 파라미터로 넘겨주어야 한다.
SpringApplication.run(MainApplication).class, args);
}
댓글남기기