Study/spring

[Java] Spring Boot .properties, .yml 파일 여러개로 분리하기

 

Spring 프로젝트에는 각종 설정 값들이 모여있는 application.properties, application.yml 파일이 있습니다.

한 파일 안에 설정값을 넣게 되면 나중에 프로젝트가 더 커지면 설정값이 너무 많아서 찾거나 관리하기 힘들어집니다.

그래서 개발 환경이나 용도에 맞게 분리하는 것이 좋습니다.

 

파일 분리 방법

분리할 설정 파일입니다.

application.properties에 있는 설정들
application.properties에 있는 설정들

 

여기서 sql 관련 로그 부분을 따로 빼서 별도의 파일로 만들어 관리하도록 하겠습니다.

 

src/main/resources 경로에 properties 파일을 하나 더 생성합니다.

application-log.properties 파일 생성
application-log.properties 파일 생성

로그 설정만 따로 분리할거니까 application-log.properties라고 지었습니다.

yml을 사용한다면 application-log.yml로 생성하면 됩니다.

 

 

 

 

그리고 이 파일 안에 로그 설정 값들을 옮겨줍니다.

 

추가한 properties 파일 안에 설정 값 이동
추가한 properties 파일 안에 설정 값 이동

 

이렇게만 설정하면 아직 적용이 안됩니다.

분리한 파일도 설정 파일로 관리되게 만들어야합니다.

 

분리한 설정 파일 적용 방법

application.properties 파일에 다음 옵션을 추가합니다.

# application.properties
spring.profiles.include=log

# application.yml
spring:
    profiles:
        include:
            - log

이렇게 설정하고 스프링 부트 프로젝트를 시작하면 다음과 같은 로그를 확인할 수 있습니다.

log 프로필 설정이 활성화 됨
log 프로필 설정이 활성화 됨

log라는 프로필이 활성화되었다는 로그입니다.

 

특정 기능에 대한 설정 뿐만 아니라 설정 파일을 dev 환경, 운영 환경 별로 분리해서 관리할 때도 사용됩니다.

 

프로젝트가 커져서 모듈을 분리할 때도 설정 파일을 모듈별로 분리해서 사용하게 됩니다.

그러면 각 모듈별로 설정 값들을 관리할 수 있어서 한 파일에 다 있었을 때보다 관리가 쉬워집니다.