스프링부트 프로퍼티와 각종 외부 설정의 우선순위

최기곤·2021년 1월 13일
0

스프링부트

목록 보기
2/4

터미널

SPRING_APPLICATION_JSON='{"acme":{"name":"EnvVariable"}}' java -jar -Dname=javaSystemProperty test.jar --name=commandArgument

프로젝트 내의 application.properties

name=appProperty
random=${random.uuid}

만약 이렇게 name에대한 설정을 한다면?
우선순위는 commandAr > 자바시스템 > 환경변수 > applicationProperty이다.
즉, name = commandArgument로 설정된다.

Tip : -D옵션은 자바의 시스템프로퍼티 설정, --name은 커맨드라인 아규먼트, 맨앞은 환경변수.

이런 외부설정들을 Spring에서는 @Value 어노테이션으로 접근 가능하다. ex)@Value("${name}");

application.properties에서 ${random.~} 으로 random value설정또한 가능하다.

Application Property Files

application.properties파일이 여러개?!
이 경우의 우선순위
1. current 폴더의 /config폴더
2. current 폴더
3. classpath의 config패키지.
4. classpath root

4번이 resource의 application.properties.

profile
놀면서 일하고 일하면서 놀고~ 해삐~

0개의 댓글