1. 프러퍼티 파일 생성
먼저 아래와 같이 properties 파일을 만들어 주자
/WEB-INF/spring/properties/aabooSite-local.properties
다음 문장을 추가해보자
db.url = 127.0.0.1
db.username = aaboo
db.password = !@!dsfsdf23432131a
value1 = 12345
value2 = abcdef
2. 환경설정 구성(이클립스에서)
1) servlet-context.xml 에서 아래 내용 추가
<!-- 프로퍼티 파일 설정 -->
<beans:bean id="properties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<beans:property name="locations">
<beans:list>
<beans:value>/WEB-INF/spring/properties/aabooSite-${spring.profiles.active}.properties</beans:value>
</beans:list>
</beans:property>
</beans:bean>
<!-- 위의 설정을 통해 아래와 같이 사용되어질 수 있음 -->
<beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<beans:property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<beans:property name="url" value="${db.url}" />
<beans:property name="username" value="${db.username}" />
<beans:property name="password" value="${db.password}" />
</beans:bean>
2) 네임스페이스에 context 추가
servlet-context.xml 파일에서 하단에 Namespaces 탭으로 들어가서 context 체크하고 저장
3. 실행환경에서 spring.profiles.active 추가
Server 창에서 해당 서비스 더블 클릭
> Open launch configuration 클릭
> (x)= Arguments 탭에서 하단 VM arguments:에 아래 문장 추가
-Dsrping.profiles.active=local
4. JAVA 파일에서 사용 (com.aaboo.mySite.test.Test.java로 가정)
import org.springframework.beans.factory.annotation.Value;
@Value(“${value1}”) private int value1; //12345
@Value(“${value2}”) private string value2; //abcdef
이와 같이 사용하면 정상적으로 properties 파일의 값을 사용할 수 있다.
단, 아래처럼 static으로 적용하는 경우 값이 대입되지 않는 문제가 있을 수 있다.
@Value(“value1”) private static int value1; //null
@Value(“value2”) private static string value2; //null
그럴 경우, 해결방법
변수는 static 선언을 해주고, @Value() set함수를 사용하면 값이 대입된다.
private static int value1;
private static string value2;
@Value("${value1}")
private void setValue1(int value1){
this.value1 = value1;
}
@Value("${value2}")
private void setValue2(String value2){
this.value2 = value2;
}
logger.info(String.valueOf(value1));
logger.info(value2);
만약 위의 경우에도 null이 나온다면
servlet-context.xml 에서 위의 java 파일을 bean으로 선언해 주어야 한다.
<beans:bean id="test" class="com.aaboo.mySite.test.Test"/>