在Spring里有一个PropertyPlaceholderConfigurer类,可以用来处理用一个properties文件里的内容来替换spring配置文件里使用${}的变量定义,比如有时候我们需要把对数控库的配置信息在别的properties文件里。

1. 首先创建一个Java Bean

package test; import org.apache.commons.lang.builder.ToStringBuilder; public class MyBean { private String name; private String prop1; private String prop2; private String prop3; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getProp1() { return prop1; } public void setProp1(String prop1) { this.prop1 = prop1; } public String getProp2() { return prop2; } public void setProp2(String prop2) { this.prop2 = prop2; } public String getProp3() { return prop3; } public void setProp3(String prop3) { this.prop3 = prop3; } @Override public String toString() { return ToStringBuilder.reflectionToString(this); } }

2. 创建spring.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" default-lazy-init="true"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>classpath:test/spring.properties</value> </property> <property name="systemPropertiesMode"> <value>1</value> </property> <property name="searchSystemEnvironment"> <value>true</value> </property> <property name="ignoreUnresolvablePlaceholders"> <value>true</value> </property> </bean> <bean id="myBean" class="test.MyBean"> <property name="name"><value>${name}</value></property> <property name="prop1"><value>${prop1}</value></property> <property name="prop2"><value>${prop2}</value></property> <property name="prop3"><value>${prop3}</value></property> </bean> </beans>

配置文件中使用${name},${propx}来说明需要使用properties文件中的内容替换

3. 创建spring.properties文件,这里变量可以递归引用当前properties文件中定义的别的变量

name=kongxx prop1=111 prop2=${prop1}222 prop3=${prop2}333

4. 写一个测试程序

package test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext( "/test/spring.xml"); MyBean myBean = (MyBean) ctx.getBean("myBean"); System.out.println(myBean); } }

运行测试程序,输出如下:

test.MyBean@1649b44[name=kongxx,prop1=111,prop2=111222,prop3=111222333]

转载于:https://www.cnblogs.com/wdpp/archive/2010/08/26/2386311.html

Spring PropertyPlaceholderConfigurer Usage相关推荐

  1. Spring PropertyPlaceholderConfigurer Usage - 使用系统变量替换spring配置文件中的变量

    spring 中可以在import 的filename中使用变量 <import resource="camel-context-routes.${username}xml" ...

  2. Spring PropertyPlaceholderConfigurer

    PropertyPlaceholderConfigurer是BeanFactoryPostProcessor的子类. 通常情况下,我们不想将类似于系统管理相关的信息同业务对象相关的配置信息混杂到XML ...

  3. spring框架mvc框架_5篇Spring框架书籍,通过MVC学习Spring

    spring框架mvc框架 Spring Framework is one of the most widely used Java EE Frameworks. It's an open sourc ...

  4. Spring Data Commons 官方文档学习

    Spring Data Commons 官方文档学习   -by LarryZeal Version 1.12.6.Release, 2017-07-27 为知笔记版本在这里,带格式. Table o ...

  5. 【转】Spring Data JDBC - Reference Documentation

    Spring Data JDBC - Reference Documentation Jens Schauder, Jay Bryant, Mark Paluch, Bastian Wilhelm V ...

  6. SSM框架超级详细整合记录:Spring+Spring MVC+MyBatis+Maven+MySQL

    1.前言 本文主要对SSM框架整合的过程进行记录,作为之后参考的依据. 1.1.参考文章 Spring代码实例系列-绪论 Spring MVC代码实例系列-绪论 MyBatis代码实例系列-绪论 1. ...

  7. dhtmlxgrid导出的js_dhtmlxgrid jsp标签

    功能简介 DhtmlxGrid是一个纯Js的控件,能帮你把它约定格式的XML数据,在浏览器端通过Js渲染成表格.该表格具有以下特性: 支持IE6-9.chrome.firefox 丰富的Js API接 ...

  8. ZooKeeper学习笔记—配置管理

    为什么80%的码农都做不了架构师?>>>    最近在工作中,为了完善公司集群服务的架构,提高可用性,降低运维成本,因此开始学习ZooKeeper.     至于什么是ZooKeep ...

  9. 配置持久化框架diamond简介及高阶应用

    配置持久化框架diamond简介及高阶应用 前言 一.简介 二.特点 三.应用场景 四.server搭建 五.发布配置数据 六.简单应用 七.高阶应用 八.spring动态集成diamond 结束语 ...

最新文章

  1. (转)Mysql中文乱码完美解决方案
  2. UVA 1593 Alignment of Code
  3. jquery删除数组中的某个元素下标越界_Java数据结构和算法(二)—数组
  4. mysql导入导出数据库文件(转载)
  5. 记录”limxml2剖析:功能特性”之摘抄
  6. html怎么给边框改样式,html里面怎么设置边框?html边框样式设置方法
  7. 【转】系统缓存全解析二:动态缓存(4)-第三方分布式缓存解决方案 Memcache(2)...
  8. Python笔记 【无序】 【五】
  9. 对索引像素格式的图片进行Setpixel(具有索引像素格式的图像不支持SetPixel)解决方案
  10. css颜色渐变 移动,CSS颜色渐变
  11. Bailian4145 放弃考试 POJ2976 ZOJ3068 Dropping tests【二分法+01分数规划】
  12. 关于Windows高DPI的一些简单总结
  13. OSI七层网络与TCP/IP五层网络架构及二层/三层网络
  14. 本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。
  15. python绘图--由逐日风场数据计算月平均风场数据并绘制二维填色图
  16. 获取头条小程序分享二维码
  17. 颜色空间:RGB,CMY,HSV,HSL,Lab详解(转载)
  18. 城市夜景照明对于安科瑞智能照明系统的运用
  19. 这可是全网EVE安装最完整,最详细的图解,没有之一【安装图解】
  20. 复习总结:马克思主义基本原理概论(马原)

热门文章

  1. 判断frame是否已创建_大白菜的ROS笔记(8)(创建TF广播和监听,内容很多,细节满满)...
  2. 【科普】为什么ip地址通常以192.168开头?
  3. 阿里云与达摩院合作 AHPA 弹性预测论文被顶会 ICDE 录用
  4. 人生苦短,开发用云 | 如何优雅完成程序员的侠客梦?
  5. Serverless 解惑——函数计算如何访问 Mongo 数据库
  6. 圆弧周长公式_建筑工程施工,最常用计算公式 (大全)
  7. linux phpinfo mysql_linux服务器 phpinfo 里面找不到 mysql 模块,也没有 pdo_mysql
  8. android上传视频 断点续传,断点续传上传
  9. 计算机视觉算法——Transformer学习笔记
  10. 【直播课】6小时教你掌握轻量级网络,在安卓部署第一个深度学习模型