본문 바로가기

JAVA/Spring

[Spring] Multi module - 모듈 별 application.yml 파일 환경 설정 및 관리하는 방법

 

 


  • common 모듈
    • application.yml
  • api 모듈
    • application-api.yml

 

 

다른 프로젝트를 import 해서 사용할 때 프로젝트 별로 yml 파일이 존재한다.

설정 파일의 이름이 동일 할 경우 상위 파일을 먼저 읽어서 하위 파일은 인식을 못 한다.

 

common 과 api 의 application.yml 을 둘 다 사용해야 하는 경우를 알아보자.

 

 

 

모듈 별로 yml 분리하기

 

@SpringBootApplication
public class apiApplication {
    public static void main(String[] args) {
        System.setProperty("spring.config.name", "application,application-api");
        SpringApplication.run(apiApplication.class, args);
    }
}

 

 

Application.class 에 System.setProperty 를 설정해주면 된다.

System.setProperty 는 환경변수를 등록하는 것이다.

value 에 설정하려는 파일명을 기재하면 해당 파일들을 읽어와서 사용하겠다는 뜻이다.

 

 

System.setProperty("spring.config.name", "application,api");

 

 

위 처럼 설정했다면

application.yml, application-~~~.yml,

api.yml, api-~~~.yml 등

 

contains 하는 파일을 찾아서 읽어 온다.

다만 모든 파일명이 application 으로 시작할 경우에는 상위 1개만 읽어오기 때문에,

위 방법이 아닌 첫번째 방법으로 정확한 파일명을 기재해야 한다.

 

 

주의사항

value 에 적는 이름은 yml 파일이어야 한다.

yml 파일명이 중복되면 안 된다.