[Spring Boot #7] 스프링 부트 외부 설정
- 📚 Spring/Spring Boot
- 2020. 4. 27. 12:15
스프링 부트 외부 설정
스프링부트는 외부 설정을 통해 스프링부트 어플리케이션의 환경설정 or 설정값을 정할 수 있다. 사용할 수 있는 외부 설정은 크게 properties, YAML, 환경변수, 커맨드 라인 인수 등이 있다.
properties 파일을 통한 설정
properties 파일을 통해서 다음과 같이 어플리케이션 외부 설정을 할 수 있다.
참고로 properties의 값은 @Value 어노테이션을 통해 읽어올 수 있다.
프로퍼티 우선 순위
스프링부트에서는 프로퍼티 값에 따라서 우선 순위를 두고 있다는 것을 명심하자
- 유저 홈 디렉토리에 있는 spring-boot-dev-tools.properties
- 테스트에 있는 @TestPropertySource
- @SpringBootTest 애노테이션의 properties 애트리뷰트
- 커맨드 라인 아규먼트
- SPRING_APPLICATION_JSON (환경 변수 또는 시스템 프로티) 에 들어있는 프로퍼티
- ServletConfig 파라미터
- ServletContext 파라미터
- java:comp/env JNDI 애트리뷰트
- System.getProperties() 자바 시스템 프로퍼티
- OS 환경 변수
- RandomValuePropertySource
- JAR 밖에 있는 특정 프로파일용 application properties
- JAR 안에 있는 특정 프로파일용 application properties
- JAR 밖에 있는 application properties
- JAR 안에 있는 application properties
- @PropertySource
- 기본 프로퍼티 (SpringApplication.setDefaultProperties)
@ConfigurationProperties 어노테이션을 통한 외부 설정
이번에는 @ConfigurationProperties 프로퍼티 파일의 값을 받은 클래스를 하나 생성하여 그 클래스를 @Autowired 어노테이션을 통해 자동 주입하는 방법이다.
이 방법은 *type-safe, 유지보수 측면에서 좋은 장점을 가진다.
'📚 Spring > Spring Boot' 카테고리의 다른 글
[Spring Boot #9] 스프링 부트 로깅(Logging) (0) | 2020.04.28 |
---|---|
[Spring Boot #8] 스프링 부트 프로파일(Profile) (0) | 2020.04.28 |
[Spring Boot #6] 이벤트 리스터 (0) | 2020.04.26 |
[Spring Boot #5] 스프링부트 HTTP/2 적용 - undertow (0) | 2020.04.25 |
[Spring Boot #4] 스프링부트 HTTPS, HTTP2 (0) | 2020.04.25 |