프로퍼티를 환경 변수로 설정할 수도 있다. 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).