스프링에서 프로젝트 환경 설정은 다양하게 관리할 수 있다. 그 중 하나가 application.properties
, application.yml
과 같은 파일을 활용하는 것인데, 로컬/개발/운영 등 다양한 환경에 따라 다른 설정을 적용하기 위해 주로 사용한다. 스프링은 어플리케이션이 시작될 때, application.yml
파일을 찾고, 현재 환경에 맞는 설정과 옵션을 읽어 시스템에 적용한다.
물론, 파일 하나에 모든 설정을 넣어서 설정을 할 수도 있지만 프로젝트가 커지고 담아야 하는 설정이 많아지다 보면 파일을 분리해서 관리하는 것이 효율적이다. 또한, 멀티 모듈 환경에서는 어쩔 수 없이 분리가 될 수 밖에 없다. 그럼 스프링은 application.yml
파일 하나만을 읽을텐데, 파일을 분리해 여러 개의 환경 설정 파일이 생긴다면 어떻게 관리할 수 있을까?
spring.config.import 사용하기
어플리케이션 서버가 시작될 때, application.properties
파일이나 application.yml
파일을 먼저 참고하게 되는데 이 때 다른 모듈에 포함된 설정 파일도 함께 import 할 수 있다. Application 클래스가 존재하는 모듈의 application.yml
파일에서 다른 모듈의 설정 파일을 import 아래에 기입한다. 아래 예시에서는 adapter-http-property.yml
이라는 설정 파일을 불러온다.
# apps:app-api 모듈
spring:
config:
import:
- 'classpath:adapter-http-property.yml' # adapter-http 모듈에 있는 설정을 함께 불러오기
이 때, application.yml
파일만 수정하는 것이 아니라 같은 모듈 내의 build.gradle
도 함께 수정해줘야 한다. runtimeOnly
커맨드를 활용한다.
// :apps:app-api
dependencies {
...
runtimeOnly(project(":libs:adapter-http"))
...
}
libs:adapter-http
모듈의 adapter-http-property.yml
설정 파일을 함께 적용할 수 있다.
// :libs:adapter-http
kakao-open-api:
base-url: dapi.kakao.com
search-blogs: /v2/search/blog
'스프링' 카테고리의 다른 글
[스프링] Executable jar 파일 만들어서 실행해보기 (0) | 2023.02.10 |
---|---|
[스프링] H2 데이터베이스 사용하기 (0) | 2023.02.09 |
[스프링] @Valid 사용과 테스트 케이스 작성하기 (0) | 2023.02.06 |
[스프링] REST Docs, asciidoctor 로 API 문서 관리하기 (0) | 2023.02.06 |
[스프링] JPA 관련 통합 테스트 환경 구축하기 (0) | 2023.02.06 |
댓글