2020. 10. 21. 00:02ㆍ개인공부/스프링부트
외부설정 파일
설정 애플리케이션에서 사용하는 여러가지 설정 값들을 어플리케이션 밖 혹은 안에 정의할수 있는 기능.
흔히 볼수 있는 가장 중요한 설정파일은 application.properties 란 파일
스프링부트가 애플리케이션을 로딩할때 자동으로 구동하는 파일.
application.properties에
애플리케이션에서 참조해서 사용
가장 기본적인 방법으로는
외부설정1부 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config
사용할 수 있는 외부 설정
● properties
● YAML
● 환경변수
● 커맨드 라인 아규먼트
프로퍼티 우선 순위
- 유저 홈 디렉토리에 있는 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)
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 |
---|