[Spring Boot #7] 스프링 부트 외부 설정

 

스프링 부트 외부 설정

스프링부트는 외부 설정을 통해 스프링부트 어플리케이션의 환경설정 or 설정값을 정할 수 있다. 사용할 수 있는 외부 설정은 크게 properties, YAML, 환경변수, 커맨드 라인 인수 등이 있다.

properties 파일을 통한 설정

properties 파일을 통해서 다음과 같이 어플리케이션 외부 설정을 할 수 있다.
참고로 properties의 값은 @Value 어노테이션을 통해 읽어올 수 있다.

프로퍼티 우선 순위

스프링부트에서는 프로퍼티 값에 따라서 우선 순위를 두고 있다는 것을 명심하자

  1. 유저 홈 디렉토리에 있는 spring-boot-dev-tools.properties
  2. 테스트에 있는 @TestPropertySource
  3. @SpringBootTest 애노테이션의 properties 애트리뷰트
  4. 커맨드 라인 아규먼트
  5. SPRING_APPLICATION_JSON (환경 변수 또는 시스템 프로티) 에 들어있는 프로퍼티
  6. ServletConfig 파라미터
  7. ServletContext 파라미터
  8. java:comp/env JNDI 애트리뷰트
  9. System.getProperties() 자바 시스템 프로퍼티
  10. OS 환경 변수
  11. RandomValuePropertySource
  12. JAR 밖에 있는 특정 프로파일용 application properties
  13. JAR 안에 있는 특정 프로파일용 application properties
  14. JAR 밖에 있는 application properties
  15. JAR 안에 있는 application properties
  16. @PropertySource
  17. 기본 프로퍼티 (SpringApplication.setDefaultProperties)

@ConfigurationProperties 어노테이션을 통한 외부 설정

이번에는 @ConfigurationProperties 프로퍼티 파일의 값을 받은 클래스를 하나 생성하여 그 클래스를 @Autowired 어노테이션을 통해 자동 주입하는 방법이다.
이 방법은 *type-safe, 유지보수 측면에서 좋은 장점을 가진다.

댓글

Designed by JB FACTORY