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());
    }
}
最后的运行结果如下: 
Spring中获取外部配置文件中的属性值的更多相关文章
- Java 获取*.properties配置文件中的内容 ,常见的两种方法
		import java.io.InputStream; import java.util.Enumeration; import java.util.List; import java.util.Pr ... 
- 获取UWP配置文件中的版本信息
		原文:获取UWP配置文件中的版本信息 在一般的软件中,我们都会显示当前软件的版本信息.以前作者都是在发版的时候修改一下UWP的配置文件中的版本信息和软件中的版本信息.但是每次这样很麻烦,有时间忘记修改 ... 
- spring boot 项目从配置文件中读取maven 的pom.xml 文件标签的内容。
		需求: 将pom.xml 文件中的版本号读取到配置文件并打印到日志中. 第一步: 在pom.xml 中添加以下标签. 第二步: 将version 标签的值读取到配置文件中 这里使用 @@ 而不是 ... 
- Objective-C中变量采用@property的各个属性值的含义
		我们在OC中定义变量,可以自己来定义变量的setter方法来设置变量值,用getter方法来获取变量值.但是当变量数量增多时,还采用手动添加setter/getter方法来操作变量,就会使得程序代码量 ... 
- 【记录】mybatis中获取常量类中数据
		部分转载,已注明来源: 1.mybatis中获取常量类中数据 <update id="refuseDebt"> UPDATE dt_debt a SET ... 
- Web版需求征集系统所得1,servlet中获取checkbox复选框的值
		servlet中获取checkbox复选框的值 </tr> <tr> <td align="right">研究类型</td> < ... 
- mybatis 中的 xml 配置文件中 ‘<’、 ‘>’ 处理
		mybatis 中的 xml 配置文件中 '<'. '>' 处理 1.使用转义字符将 '<'. '>' 替换掉. 描述 字符 转义字符 小于号 < < 大于号 &g ... 
- 【Android】12.3 在当前Activity中获取另一个Activity的返回值
		分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 在上一节的示例中,通过StartActivity(Intent)方法启动另一个Activity后,这两个Activ ... 
- 清除bean中所有非基本数据类型的属性值
		利用beanutils清除javabean中所有非基本数据类型的属性值: import com.google.gson.Gson; import lombok.Data; import org.apa ... 
随机推荐
- Directory traversal
			Find the hidden section of the photo galery. 找到相册的隐藏部分. 直接能够目录遍历: 虽然galerie禁止访问,但是密码就在里面----直接爆破或者爬虫 ... 
- 阿里巴巴java开发手册  学习
			3. [强制]类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外: DO / BO / DTO / VO / AO 正例: MarcoPolo / UserDO / Xml ... 
- UFUN函数 UF_UI UF_PART函数(UF_UI_select_with_class_dialog, UF_PART_export_with_options)
			/*主要演示 UF_PART_export_with_options 这个函数 */1 //设置class_dialog选择过滤 static int init_proc(UF_UI_selectio ... 
- eclipse中自动生成serialVersionUID
			serialVersionUID作用: 序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性. 如果你修改代码重新部署后出现序列化错误,可以考虑给相应的类增加seri ... 
- Java class 和public class 区别
			1.类的访问权限 为了控制某个类的访问权限,修饰词必须出现在关键字class之前.例如:public class Student {} 在编写类的时候可以使用两种方式定义类: (A)pub ... 
- ping-pong buffer
			1 什么是pingpong? pingpong是一种数据缓存的手段,通过pingpong操作可以提高数据传输的效率. 2 什么时候需要pingpong? 在两个模块间交换数据时,上一级处理的结果不能马 ... 
- 2018-2019-2 20165315《网络对抗技术》Exp7 网络欺诈防范
			2018-2019-2 20165315<网络对抗技术>Exp7 网络欺诈防范 一.实验内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 简单应 ... 
- 【Gamma】Scrum Meeting 10
			目录 写在前面 任务进度表 燃尽图 照片 写在前面 例会时间:6.8 22:30-23.00 例会地点:微信群语音通话 代码进度记录github在这里 任务进度表 注:点击链接跳转至相应的issue ... 
- 关于Keras 版本的安装与修改
			神经协同过滤(Neural Collaborative Filtering)神作的源码的实验设置要求是: 然而,我们使用控制台 (命令:)或者是PyCharm直接安装的版本均是 最新版本(即 2.0版 ... 
- html5点击input没有出现光标完美解决方案
			html5点击input没有出现光标完美解决方案 <pre> <input type="text" placeholder="输入姓名" cl ... 
