더북(TheBook)

프로퍼티를 환경 변수로 설정할 수도 있다. BASH나 zsh 셸을 사용한다면 export 명령으로 프로퍼티를 설정한다.

$ export spring_main_show_banner=false 

프로퍼티 이름을 환경 변수 이름으로 사용하려면 마침표(.)나 하이픈(-) 대신에 밑줄(_)을 사용해야 한다.

사실 스프링 부트 애플리케이션에 프로퍼티를 설정하는 방법은 여러 가지다. 스프링 부트는 다음 목록을 포함한 여러 프로퍼티 소스로 프로퍼티를 사용할 수 있게 한다.2

1. 명령줄 인자 

2. java:comp/env에서 얻을 수 있는 JNDI 속성

3. JVM 시스템 프로퍼티

4. 운영체제의 환경 변수

5. random.*로 시작하는 프로퍼티 때문에 무작위로 생성된 값(${random.long}처럼 다른 프로퍼티를 설정할 때 참조)

6. 애플리케이션 외부에 있는 application.properties나 application.yml 파일

7. 애플리케이션 내부에 패키징된 application.properties나 application.yml 파일

8. @PropertySource로 지정된 프로퍼티 소스

9. 기본 프로퍼티

 

이 목록은 우선순위 순으로 작성했다. 즉, 목록 위쪽에 있는 소스에 설정한 프로퍼티는 아래쪽에 있는 소스에 설정한 동일한 프로퍼티를 오버라이드한다. 예를 들어 명령줄 인자는 어떤 프로퍼티 소스에서 설정한 프로퍼티든 오버라이드한다.

 

2 역주 

본문에 나열한 아홉 개 이외에도 환경 변수나 시스템 프로퍼티를 이용하여 한 줄로 작성된 JSON 형태로 프로퍼티를 제공할 수 있는 SPRING_APPLICATION_JSON 변수, 특정 프로파일에서만 작동하는 애플리케이션 내외부 프로퍼티 파일을 이용하여 프로퍼티를 지정할 수도 있다(application-{profile}.properties, application-{profile}.yml).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.