-
[Spring] 멀티 모듈에서 모듈별 yml 파일 관리하는 법Server/Spring 2022. 10. 4. 00:18728x90반응형
Multi module에서 yml 파일 관리하는 법
이번 글에서는
Multi-Module
을 사용할 때 모듈 별yml
파일 관리하는 법에 대해서 정리해보려 합니다.- api 모듈
- application.yml
- domain 모듈
- application.yml
만약에 위와 같이 2개의 모듈이 있을 때, 각 모듈마다
application.yml
을 가지고 있을 것입니다. 그런데 지금까지Multi-Module
로 프로젝트를 할 때는 모듈별로yml
파일을 분리하지 않고api
모듈 하나에 모든 설정들을 다 넣었습니다.yml이 잘 분리가 되었다면 api 모듈의 yml에서는 api와 관련된 설정(ex: Swagger)들이 있을 것이고 domain 모듈의 yml에는 대표적으로 DB 접근 정보 및 JPA 설정들이 존재할 것입니다.
그래서 이제 모듈 별 yml 분리하는 방법에 대해서 알아보겠습니다.
모듈별 yml 분리하기
@SpringBootApplication class NadaServerApplication fun main(args: Array<String>) { System.setProperty("spring.config.name", "application,application-domain") runApplication<NadaServerApplication>(*args) }
@SpringBootApplication public class NadaServerApplication { public static void main(String[] args) { System.setProperty("spring.config.name", "application,application-domain"); SpringApplication.run(NadaServerApplication.class, args); } }
위와 같이
main
클래스에System.setProperty()
하나만 추가하면 됩니다.System.setProperty
는 환경변수를 등록하는 것인데요.application
application-domain
환경변수 Value에 이라고 되어 있는데 위처럼 적으면
application.**
,application-domain.**
파일들을 읽어와서 사용하겠다는 뜻입니다.즉,
core
모듈에 존재하는application-domain.yml
을 읽어올 수 있게 됩니다.여기서 주의할 점은
Value
에 적는 이름은yml
파일의 이름이어야 하고,yml
파일의 이름이 겹치면 안됩니다.System.setProperty("spring.config.name", "application,api");
위처럼 적었다면
api.yml
,api-local.yml
로 사용할 수도 있고,application.yml
,application-local.yml
같은 이름으로도 사용할 수 있는 것입니다.그리고 모듈별로 모두
application.yml
의 이름을 사용하게 되면 가까운 yml을 읽어서 사용하기 때문에domain
모듈의yml
은 사용하지 못하게 됩니다.반응형'Server > Spring' 카테고리의 다른 글
[Spring] Multi Module에서 implementation으로 참조 못하는 에러 해결하기 (0) 2022.11.27 [Spring] Security WebSecurityConfigurerAdapter Deprecated 해결하기 (0) 2022.06.29 [Spring] Multi-Module에서 Domain 모듈 테스트 실행하는 법 (1) 2022.06.23 [JPA] @OneToOne 관계에서 N + 1 발생하는 이유가 무엇일까? (4) 2022.06.04 [Spring] Spring Security, React를 사용하면서 CORS 허용하는 방법 (0) 2021.12.23 - api 모듈