프로그래밍/스프링

-D옵션으로 web.xml에서 선택적인 *.xml 로딩

doveh 2013. 8. 3. 20:31

스프링을 사용 할 때 로컬에서는 적용하지 말아야 할 설정파일이 있을 경우

spring/dev/ 폴더를 만들어서 build 할 때 spring/dev/ 하위의 파일을 spring/ 으로 copy 하고 있었다.

이번에 properties 때문에 -D옵션으로 검색하다 보니

-D옵션을 web.xml에서 읽을 수 있다는 것을 알게 되었고 나름 유용한 것 같다.

나중에 잘 활용 해 봐야지~


1. -D옵션

local, dev환경에 따라서 java(또는 WAS) 실행 시 -Denv=[loc,dev]로 구분하여 실행

java -Denv=loc
java -Denv=dev


2. 설정파일

local, dev환경에 따라서 datasource를 선택적으로 loading

config/spring/context-annotation.xml
config/spring/context-properties.xml
config/spring/context-transaction.xml
config/spring/system-datasource-loc.xml
config/spring/system-datasource-dev.xml


3. web.xml

contextConfigLocation에서 ${env}를 사용해서 datasource를 선택적으로 loading 하기 위해

기본 설정파일은 context로 시작

선택적 설정파일은 system으로 시작하고 [loc, dev] 구분자를 줌.

test


	contextConfigLocation
	
		/WEB-INF/classes/config/spring/context-*.xml
		/WEB-INF/classes/config/spring/system-*-${env}.xml