2015년 12월 10일 목요일

프로퍼티 파일을 이용하여 빈을 설정하는 방법

Environment객체를 이용하지 않고 프로퍼티 파일을 직접 이용하여 스프링 빈을 성정하는 방법이다.

방식에는 두 가지가 있다.

첫째, 스프링 설정 XML 파일에 프로퍼티 파일을 명시하는 방법
둘째, 스프링 설정 JAVA 파일에 프로퍼티 파일을 명시하는 방법

하지만 이번에는 많이 사용하는 첫번째 방법에 대하여 말하고자 한다.

<applicationContext.xml> - Xml Fle
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns:context="http://www.springframework.org/schema/context"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
  6.         http://www.springframework.org/schema/beans/spring-beans.xsd  
  7.         http://www.springframework.org/schema/context   
  8.         http://www.springframework.org/schema/context/spring-context-3.1.xsd">  
  9.       
  10.     <context:property-placeholder location="classpath:number.properties" />  
  11.     <bean id="twoNumber" class="[classpath].TwoNumber">  
  12.         <property name="num1">  
  13.             <value>${num1}</value>  
  14.         </property>  
  15.         <property name="num2">  
  16.             <value>${num2}</value>  
  17.         </property>  
  18.     </bean>  
  19. </beans>  

<number.properties> - Properties File
  1. num1=10  
  2. num2=20  

<SpringFramework.java> - Class File
  1. public class SpringFramework implements InitializingBean, DisposableBean{  
  2.     public static void main(String args[]) {  
  3.         TwoNumber twoNumber;  
  4.           
  5.         String resources = "classpath:applicationContext.xml";  
  6.         GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();  
  7.         ctx.load(resources);  
  8.         ctx.refresh();  
  9.           
  10.         twoNumber = ctx.getBean("twoNumber", TwoNumber.class);  
  11.         twoNumber.printNumber();  
  12.     }  
  13. }  

<TwoNumber.java> - Class File
  1. public class TwoNumber {  
  2.     private int num1;  
  3.     private int num2;  
  4.       
  5.     public void setNum1(int num1) {  
  6.         this.num1 = num1;  
  7.     }  
  8.     public void setNum2(int num2) {  
  9.         this.num2 = num2;  
  10.     }  
  11.       
  12.     public void printNumber() {  
  13.         System.out.println("num1 = " + num1);  
  14.         System.out.println("num2 = " + num2);  
  15.     }  
  16. }  

출력 결과는 다음과 같다.

num1 = 10
num2 = 20



댓글 없음:

댓글 쓰기