YAML
YAML (YAML Ain't Markup Language)
사람이 읽기 좋은 데이터 구조를 목표로 함 확장자는 yaml, yml
application.properties 예시
environments.dev.url=https://dev.example.com
environments.dev.name=Developer Setup
environments.prod.url=https://another.example.com
environments.prod.name=My Cool App
application.yml 예시
environments:
dev:
url: "https://dev.example.com"
name: "Developer Setup"
prod:
url: "https://another.example.com"
name: "My Cool App"
- YAML의 큰 특징은 사람이 읽기 좋은 계층 구조임
- 공백으로 계층 구조를 만듦, 보통 2칸을 사용
- 구분 기호 ' : ' 를 사용 (key: value: 값)
application.properties ➡️ application.properties 로 변경
application.yml 생성
- properties 와 yml을 같이 사용하게 될 경우 properties가 우선권을 가짐 (실무에서는 yml 파일 선호)
yml과 프로필
- --- 은 논리 파일을 구분
- spring.config.active.on-profile: 프로필 적용
@Profile
각 환경마다 설정값을 다른 빈을 등록 할 수 있음
로컬 개발 환경에서는 실제 결제를 안함
운영 환경에서는 실제 결제를 시도
PayClient 를 사용하는 부분, 상황에 따라 LacalPayClient 나 ProdPayClient를 주입받음
@Profile 어노테이션은 프로필이 활성화된 경우에만 빈을 등록함
ApplicationRunner 인터페이스를 사용하면 스프링은 빈 초기화가 모두 끝나고 애플리케이션 로딩이 완료되는 시점에 run(args) 메서드를 호출해줌
hello.pay 패키지 추가
프로필 없이 실행하면 default 프로필이 사용됨
prod 프로필 적용
@Profile 어노테이션
특정 조건에 다라서 해당 빈을 등록할지 말지 선택함, 등록되는 스프링 빈도 분리할 수 있음
feat. 스프링부트 - 핵심 원리와 활용 (김영한)
'다시 웹, 백엔드로 > 스프링' 카테고리의 다른 글
Spring Boot 시작하기 (0) | 2024.05.27 |
---|---|
액츄에이터 (1) | 2023.11.21 |
@ConfigurationProperties 검증 (0) | 2023.10.30 |
외부설정사용 - @ConfigurationProperties 생성자 (1) | 2023.10.22 |
외부 설정 사용 - @ConfigurationProperties (0) | 2023.09.12 |