나중에 잊어먹기 전에 Spring에서 properties를 사용하는 방법 정리


user.properties는 기본으로 load

system은 [loc, dev]에 따라서 선택적으로 load (java args -D 옵션으로)


1. -D옵션

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

java -Denv=loc
java -Denv=dev


2. properties 파일

user.properties
#sample
spring.version=3.1.1

system.loc.properties
#LOCAL JDBC
driverClassName=org.apache.derby.jdbc.ClientDriver
url=jdbc:derby://127.0.0.1:8133/derby_local
username=loc
password=loc

system.dev.properties
#DEV JDBC
driverClassName=org.apache.derby.jdbc.ClientDriver
url=jdbc:derby://127.0.0.1:8133/derby_dev
username=dev
password=dev


3. context-properties.xml

properties의 id="config"로 하고

spel에 의해 #{systemProperties['env']} 부분이 -Denv 에서 넣은 값으로 변환되어 properties 파일이 매핑된다.


	
		
			classpath:user.properties
			classpath:system.#{systemProperties['env']}.properties
		
	


4. XML에서 사용

context-properties.xml에서 설정한 "config"라는 이름으로 spel을 사용해서 properties 값 매핑


	
	
	
	


5. Class에서 사용

@Value와 spel을 사용해서 값 매핑

import org.springframework.beans.factory.annotation.Value;

public class PropTest {
	@Value("#{config['spring.version']}")
	private String springVersion;





Posted by doveh
,