Spring에서 외부설정값들을 관리할때 보통 properties 파일을 많이 사용합니다.
SpringBoot 에서는 properties말고도 yml 파일을 기본으로 사용할 수도 있습니다.
properties대신 yml을 사용하여 설정값들을 관리하면
보다 좋은 가독성으로 관리하기가 편리하고 중복으로 값을 입력할 수 있는
properties와 달리 중복도 방지할 수 있습니다.
properties
ghsong.name.first:gunho
ghsong.name.last:song
ghsong.phone[0]:01011112222
ghsong.phone[1]:01033334444
yml
ghsong:
name:
first: gunho
last: song
phone:
- 01011112222
- 01033334444
yml는 계층형 구조로 properties보다 가독성이 높습니다.
※ 다만 계층구조를 구분할때 indent가 틀리면 설정이 적용안될경우가 많습니다.
한 계층을 구분할때에 space 2번 or 4번으로 구분하여 작성합니다.
구조화
개발시 local, dev, prod로 구분하여 설정값이 달리지는데
yml은 spring profile에 따라 파일 한개에서도 여러 설정을 지정하여 편리하게 사용할 수 있습니다.
* springboot 2.4 이상에서 테스트하였으며, 이전 버전에서 사용했던
spring.profile.active가 Deprecated 되어 spring.config.activate.on-profile로 변경하여 작성하였습니다.
spring:
config:
activate:
on-profile: local
ghsong:
name: 'gunho-local'
age: 10
---
spring:
config:
activate:
on-profile: dev
ghsong:
name: 'gunho-dev'
age: 12
---
spring:
config:
activate:
on-profile: prod
ghsong:
name: 'gunho-prod'
age: 13
--- 로 active profile을 구분하여 작성할 수 있습니다.
profile을 dev로 개발 할때 필요한 설정값들을 dev아래 구조에서 설정하면 해당 설정값으로 적용되어 사용할 수 있습니다.
개발환경, 운영환경에서 사용 할 설정값들을 나누어 작성 후 관리&개발할 수 있습니다.
추가로 설정파일을 여러개로 나누어서도 관리할 수 있습니다.
application-name.yml으로 파일을 구분하여 작성하고 각 profile에서 사용할 파일들을 정의해 놓고 사용할 수 있습니다.
'IT > Java' 카테고리의 다른 글
Http 응답 상태코드 (Http Status Code) (0) | 2019.04.30 |
---|---|
자바 명명규칙 (Java Naming) (0) | 2019.04.30 |
댓글