FRAMEWORK/SPRING
<util:properties/> 와 Spring EL 로 값 가져오기
적외선
2014. 11. 11. 14:38
XML 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <? xml version = " 1.0" ="" encoding = "UTF-8" ?="">< beans xmlns = "http://www.springframework.org/schema/beans" xsi:schemaLocation=" .... < util:properties id = "prop" location = "classpath:config/properties/sample.properties" /> .... </ beans > |
sample.properties
1 2 3 4 | sample.prop1 = test # 우쭈쭈~ sample.prop2 = \uc6b0\ucb48\ucb48~ |
Spring EL 로 값 가져오기(SampleBean.java)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package com.tistory.stove99; import java.util.Properties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class SampleBean { // Spring EL 로 값 가져오기 // Spring EL 이기 때문에 자유롭게 메소드 호출도 가능함. String 의 concat 메소드 호출 @Value ( "#{prop['sample.prop1'].concat(' abc')}" ) private String value1; @Value ( "#{prop['sample.prop2']}" ) private String value2; // util:properties 로 생성된 빈은 java.util.Properties 의 인스턴스이기 때문에 // 요렇게 Autowired 해서 쓸 수 있다. @Autowired Properties prop; public String val(String key){ return prop.getProperty(key); } public String toString(){ return String.format( "value1 : %s, value2 : %s" , value1, value2); } } |
Spring EL에 대해서 더 알아보고 싶으면 요 사이트를 참고하면 친절하게 알려줌.
http://static.springsource.org/spring/docs/3.0.x/reference/expressions.html
Test(SampleTest.java)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import org.springframework.context.support.ClassPathXmlApplicationContext; import com.tistory.stove99.SampleBean; public class SampleTest { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "config/spring/*-context.xml" ); SampleBean sample = context.getBean(SampleBean. class ); // test System.out.println(sample.val( "sample.prop1" )); // value1 : test abc, value2 : 우쭈쭈~ System.out.println(sample); } } |
출처 - http://stove99.tistory.com/150