터미널
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.properties파일이 여러개?!
이 경우의 우선순위
1. current 폴더의 /config폴더
2. current 폴더
3. classpath의 config패키지.
4. classpath root
4번이 resource의 application.properties.