반응형
인프런에서 토비님의 스프링 부트 강의를 듣다가 외부 설정 읽어오는 방법이 나오길래 궁금해서 찾아보고 정리한다.
application.yml이나 application.properties가 전부인줄 알았는데 그게 아니였다.
property 종류 및 우선순위
정말 여러가지가 있는데 여기에 우선순위가 있다.
properties를 호출할 때 우선순위가 높은 것부터 가지고 온다.
- devtools가 active일 때 $HOME/.config/spring-boot에 있는 Devtools global settings properties
- 테스트에 있는 @TestPropertySource 어노테이션
- 테스트에 있는 properties 속성 (@SpringBootTest, 애플리케이션 일부를 테스트하기 위한 test 어노테이션에 사용 가능)
- 커맨드라인 arguments
- SPRING_APPLICATION_JSON에 있는 프로퍼티 (환경 변수나, 시스템 프로퍼티에 내정된 인라인 JSON)
- ServletConfig init 파라미터
- ServletContext init 파라미터
- java:comp/env의 JNDI 속성
- 자바 시스템 properties (System.getProperties())
- OS 환경 변수
- random.* 프로퍼티만 가지고 있는 RandomValuePropertySource
- application.properties, application.yml (properties와 yml이 같이 있는 경우 properties가 우선)
- @Configuration 클래스에 있는 @PropertySource
- SpringAplication.setDefaultProperties에 설정한 값
뭐가 정말 많은데 대부분 처음 보는 설정들이다.
3, 9, 10, 12, 13 정도만 보면될 거 같다.
다음 포스팅에선 properties를 읽어오는 4가지 방법에 대해 알아보겠다.
참고
https://docs.spring.io/spring-boot/docs/2.5.2/reference/htmlsingle/#features.external-config
반응형
'Spring' 카테고리의 다른 글
[Spring] Spring Boot Configuration Annotation Processor not configured 해결 방법 (0) | 2023.02.10 |
---|---|
[Spring] properties 가져오기 (2) - 4가지 방법으로 읽어오기 (0) | 2023.02.10 |
[Spring] MissingKotlinParameterException을 ExceptionHandler로 처리 하는 방법 (0) | 2023.01.15 |
[Spring] "has been compiled by a more recent version" 에러 처리 방법 (0) | 2022.12.19 |
[Spring] ReturnValueHandler 추가 방법 (kotlin ver.) (0) | 2022.12.18 |
댓글