관리 메뉴

nalaolla

<util:properties/> 와 Spring EL 로 값 가져오기 본문

SPRING

<util:properties/> 와 Spring EL 로 값 가져오기

날아올라↗↗ 2016. 7. 4. 11:37
728x90
반응형

<util:properties/> 와 Spring EL 로 값 가져오기



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>

여러개를 써야할 경우

<beans profile="local">

<util:properties id="envConfig" location="classpath:config/local.config.properties" />

<util:properties id="snsConfig" location="classpath:config/local.sns.properties" />

</beans>


 profile의 경우 상황에 따라 dev, local등으로 쓸수 있다..

이 부분에 대한 설정은 web.xml에서 설정한다.


<context-param>

<param-name>spring.profiles.default</param-name>

        <param-value>local</param-value>

</context-param>




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);
    }
}


728x90
반응형