JVM/Spring

[Spring] 스프링 properties 설정 파일 분리하기

헹창 2022. 1. 26.
반응형

서버환경에 따라 종속적인 정보가 있을 경우(로컬, 개발, 운영에 대한 DB 정보가 다를 때), 이를 애플리케이션의 구성정보를 하기 위해 주석을 지우고, 다른 서버 환경의 정보는 주석을 설정하고를 반복적으로 하다보면 관리하기가 불편하고 실수할 때가 많다.

 

환경에 따라 값을 다르게 처리하여, 보다 효율적으로 관리하기 위해 Properties 설정파일을 분리해보자.

 

 

기본구조

Spring Maven 프로젝트를 생성하면 src/main/resources 내에 globals.properties 파일이 있다.

파일을 분리하기 전 globals.propertis 파일을 보면 DB 별로, 실서버 별로 설정한 것을 볼 수 있다.

(테스트하고 적용하고 할 때마다 귀찮고, 실수가 잦아진다.)

 

 

 

프로퍼티(Properties) 생성 및 분리

 

나는 세 개의 properties 설정파일을 분리하였다.

globals.properties 복사 붙여넣기한 뒤 각각 다음과 같이 globals- 를 prefix로 파일명을 변경하였다.

globals-maria.properties
globals-oracle.properties
globals-server.properties

 

 

그리고 기존의 globals-properties에는 active 키 값만 남겨두고, 현재 빌드하고 싶은 값을 넣었다.

여기서 값은 globals-값.properties 의 "값" 과 동일하게 설정해야한다.

 

 

 

프로퍼티(Properties) 설정

 

 

같은 resource 경로의 spring - context-common.xml 을 들어가보면 properties를 설정하는 부분이 있다.

(스프링 설정 파일명은 다를 수 있다.)

 

 

 

다음 코드를 넣어주면 끝 !

<util:properties id="global" location="classpath:/properties/globals.properties" />
<util:properties id="prop" location="classpath:/properties/globals-#{global['active']}.properties" />

 

이제는 매번 설정마다 변경하고, 주석처리하고.. 수정할 필요 없이 globals.properties의 active값만 바꾸어 설정하면된다!

 

 

 

 

 


 

이후에는 더 간단하게 분리할 수 있는 profiles 방법을 스프링부트에 적용해서 살펴보자

 

[SpringBoot] 스프링부트 properties 설정파일 분리하기

Spring properties 설정파일 분리방법 [Spring] 스프링 properties 설정 파일 분리하기 서버환경에 따라 종속적인 정보가 있을 경우(로컬, 개발, 운영에 대한 DB 정보가 다를 때), 이를 애플리케이션의 구성

haenny.tistory.com

 

728x90
반응형

댓글

추천 글