스프링부트 - 외부설정

2020. 10. 21. 00:02개인공부/스프링부트

외부설정 파일

설정 애플리케이션에서 사용하는 여러가지 설정 값들을 어플리케이션 밖 혹은 안에 정의할수 있는 기능.

 

흔히 볼수 있는 가장 중요한 설정파일은 application.properties 란 파일

스프링부트가 애플리케이션을 로딩할때 자동으로 구동하는 파일.

 

application.properties에 

애플리케이션에서 참조해서 사용

 

 

 

가장 기본적인 방법으로는

application.properteis에 내용 타이핑

 

@Value("{ application.properties에 타이핑한 키. }")

 

 

 

외부설정1https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config

사용할 수 있는 외부 설정

● properties
● YAML
환경변수
커맨드 라인 아규먼트

 

프로퍼티 우선 순위

  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)

application.properties 우선 순위 (높은게 낮은걸 덮어 씁니다.)

1. file:./config/
2. file:./
3. classpath:/config/

4. classpath:/

랜덤값 설정하기

● ${random.*}

플레이스 홀더

22.

● ●

name = keesun fullName = ${name} baik

 

 

 

 

타입-세이프 프로퍼티 @ConfigurationProperties

  • ●  여러 프로퍼티를 묶어서 읽어올 수 있음

  • ●  빈으로등록해서다른빈에주입할수있음

    ○ @EnableConfigurationProperties

    ○ @Component

    ○ @Bean

  • ●  융통성 있는 바인딩

    • ○  context-path (케밥)

    • ○  context_path (언드스코어)

    • ○  contextPath (캐멀)

    • ○  CONTEXTPATH

  • ●  프로퍼티 타입 컨버전 ○ @DurationUnit

  • ●  프로퍼티 값 검증
    ○ @Validated

○ JSR-303 (@NotNull, ...) ● 메타정보생성

● @Value

  • ○  SpEL 을 사용할 수 있지만...

  • ○  위에 있는 기능들은 전부 사용 못합니다.

 

출저 : 인프런/스프링부트 개념과 활용- 백기선님

'개인공부 > 스프링부트' 카테고리의 다른 글

스프링 부트 - 다양한 설정 (debug, 배너)  (0) 2020.10.20