Spring中獲取外部配置文件中的屬性值

很多時候需要將配置信息從程序中剝離粗來,Spring現在提供的方法是通過@Value註解和<context:placeholder>來獲取配置文件中的配置信息。這裏給出一個簡單的例子。

首先在resources文件夾下簡歷配置文件spring.biz.properties,文件內容爲:

dataId=test
versionId=1.0.1.daily

然後在xml文件中讀入該屬性值,spring-config.xml文件的內容如下:

<context:property-placeholder location="classpath:spirng.biz.properties"/>

第三步是定義需要這些屬性的類,要使用註解必須在xml文件中打開註解驅動,代碼爲:<context:annotation-config/>。@Value註解中使用${key}取出key對應的value。TestConfig.java的內容爲如下。

package com.javadu.core;

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

/**
 * Created by duqi on 15/9/14.
 */
public class TestConfig {
    @Value("${dataId}")
    private String dataId;
    @Value("${versionId}")
    private String versionId;

    private String other;

    public void setOther(String other){
        this.other = other;
    }

    public String getDataId(){
        return dataId;
    }

    public String getVersionId(){
        return versionId;
    }
}

在xml文件中定義TestConfig對應的bean,完整的spring-config.xml文件內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

       <context:annotation-config/>
       <context:property-placeholder location="classpath:spirng.biz.properties"/>

       <bean id="configBean" class="com.javadu.core.TestConfig">
              <property name="other" value="otherother"/>
       </bean>
</beans>

最後,在App.java類中:啓動IoC容器,獲取TestBean的實例,調用其開放的接口,代碼如下:

package com.javadu.common;


import com.javadu.core.TestConfig;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by duqi on 15/9/8.
 */
public class App {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        TestConfig configBean = (TestConfig)context.getBean("configBean");
        System.out.println(configBean.getDataId());
        System.out.println(configBean.getVersionId());
    }
}

最後的運行結果如下:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章