-
Spring Boot, 환경 변수 주입 우선순위Spring Boot/환경설정 2023. 6. 3. 23:44
스프링에서 환경변수는 외부에서 주입할 수 있다.
주입 받은 환경 변수는 @Value 어노테이션을 사용하여 빈에 주입하거나, @ConfigurationProperties를 사용하여 바인딩 할 수 있다.
환경변수를 주입은 우선순위가 있어 주의를 요한다.
Spring Boot uses a very particular PropertySource order that is designed to allow sensible overriding of values. Later property sources can override the values defined in earlier ones. Sources are considered in the following order:
우선순위가 높은 것 부터 나열했다.
1. Devtools global settings properties $HOME /.config/spring-boot
2. @TestPropertySource
3. @SpringBootTest
4. Command line arguments
5. SPRING_APPLICATION_JSON (시스템 속성 또는 환경변수에 포함된 인라인)
6. ServletConfig 초기 매개변수
7. ServletContext 초기 매개변수
8. JNDI attributes from java:comp/env
9. Java system properties (System.getProperties)
# JVM 옵션 -D--hello.world=hello
10. OS 환경변수
# 운영체제 환경 변수 HELLO_WORLD=/var/log/foobar
11. random.*내에 속성 가지는 RandomValuePropertySource
12. Config Data
- application.properties
- application-{profile}.properties
- application.properties (패키지 외부)
- application-{profile}.properties (패키지 외부)
13. @Configuratuon 클래스에 정의한 @PropertySourse 값 (단 재정의시 Application context가 refresh 될 때 업데이트 되는 이유로 logging, spriing.main 용도로는 사용하면 안된다.)
14. SpringApplication.setDefaultProperties로 설정된 기본 값
Reference
https://www.latera.kr/reference/java/2019-09-29-spring-boot-config-externalize/
반응형'Spring Boot > 환경설정' 카테고리의 다른 글
[springboot] Datasource Proxy로 SQL query logging 하기 (3) 2024.01.11 artillery로 부하테스트 하기 (0) 2023.10.29 [docker] docker compose로 데이터베이스 한번에 N개 띄우기 (0) 2023.10.23 Springboot, 주입한 환경변수 사용하기 (0) 2023.06.30 [IntelliJ] Java Google Code Style 적용하기 (0) 2023.06.10