본문 바로가기

Language/Spring Framework

[Spring 3] 프로퍼티(Properties) 읽기

반응형

이전에 Java에서 프로퍼티 파일을 읽은 방법에 대해 포스팅 한 적이 있는데, 오늘은 Spring Framework에서 프로퍼티를 읽는 방법에 대해 포스팅해보겠다.

스프링 프레임워크는 참 많은 사람들이 생각하는것처럼 다양한 편의 기능들을 제공한다. 이 편의 기능들을 잘 활용하면 불필요한 코드를 줄일수 있는데,
오늘 포스팅하는 프로퍼티 파일을 읽는것도 스프링에서 제공하는 기능을 이용하면 쉽게 접근할 수 있다.



오늘은 컨트롤러나 서비스 모듈에서 프로퍼티 파일을 읽어오는 간단한 방법에 대한 예제이다.


1. 프로퍼티 파일(config.properties) 내용

 #### Main DB Connection Info ####
 db.driver=com.mysql.jdbc.Driver
 db.url=jdbc:mysql://127.0.0.1:3306/Test
 db.username=test
 db.password=test1234

 #### Etc Info ####
 doc.path=D:\\test\\




2. servlet.xml 설정(예 : test-servlet.xml)

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">    
        <property name="locations" value="/WEB-INF/config/config.properties"/>    
        <property name="fileEncoding" value="UTF-8"/>
    </bean>

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${db.driver}" />
        <property name="url" value="${db.url}" />
        <property name="username" value="${db.username}" />
        <property name="password" value="${db.password}" />
        <property name="initialSize" value="2"/>
        <property name="maxActive" value="20"/>
        <property name="maxIdle" value="20"/>
        <property name="maxWait" value="5000"/>
        <property name="poolPreparedStatements" value="true"/>
        <property name="validationQuery" value="select 1"/>
        <property name="testOnBorrow" value="true"/>
        <property name="testWhileIdle" value="true"/>
        <property name="timeBetweenEvictionRunsMillis" value="60000"/>
        
    </bean>






3. 컨트롤러에서 불러오기(@Value 이용)

package kr.co.test;

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

@Controller
public class PayMobileController {

	
	// 프로퍼티 파일 읽기
	@Value("${doc.path}")
	private String m_docPath ;
	
 }



@Value 를 통해 프로퍼티에서 정의한 항목에 대해 변수에 값을 할당할 수 있다.