1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor接口的一个实现。PropertyPlaceholderConfigurer可以将上下文(配置文 件)中的属性值放在另一个单独的标准java Properties文件中去。在XML文件中用${key}替换指定的properties文件中的值。这样的话,只需要对properties文件进 行修改,而不用对xml配置文件进行修改。

2.在Spring中,使用PropertyPlaceholderConfigurer可以在XML配置文件中加入外部属性文件,当然也可以指定外部文件的编码,如:

<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location"><value>conf/sqlmap/jdbc.properties</value></property><property name="fileEncoding"><value>UTF-8</value></property></bean>

当然也可以引入多个属性文件,如:

<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>/WEB-INF/mail.properties</value>  <value>classpath: conf/sqlmap/jdbc.properties</value>//注意这两种value值的写法</list></property></bean>

3.譬如,jdbc.properties的内容为:

jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost/mysqldb?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=round;jdbc.username=rootjdbc.password=123456

4.那么在spring配置文件中,我们就可以这样写:

<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath: conf/sqlmap/jdbc.properties </value></list></property></bean><bean id="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName"value="${jdbc.driverClassName}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}"/><property name="password"value="${jdbc.password}" /></bean>

5.这样,一个简单的数据源就设置完毕了。可以看出:PropertyPlaceholderConfigurer起的作用就是将占位符指向的数据库配置信息放在bean中定义的工具。

6.查看源代码,可以发现,locations属性定义在PropertyPlaceholderConfigurer的祖父类 PropertiesLoaderSupport中,而location只有 setter方法。类似于这样的配置,在spring的源程序中很常见的。

PropertyPlaceholderConfigurer如果在指定的Properties文件中找不到你想使用的属性,它还会在Java的System类属性中查找。

我们可以通过System.setProperty(key, value)或者java中通过-Dnamevalue来给Spring配置文件传递参数。

Spring的PropertyPlaceholderConfigurer应用相关推荐

  1. Spring中PropertyPlaceholderConfigurer的使用

    Spring中PropertyPlaceholderConfigurer的使用 在使用Spring配置获取properties文件时,在网上查到相关的资料,分享哈!! (1)获取一个配置文件 < ...

  2. Spring的PropertyPlaceholderConfigurer事例应用

    在开发的过程中,经常发现一些类似:${log4j.level}之类的内容,后来才知道原因.下面解释一下: 1.PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现 ...

  3. [转载]spring使用PropertyPlaceholderConfigurer加载properties文件处理中文乱码

    在spring中我们常常使用.properties对一些属性进行一个提前配置,spring在读取∗.properties文件时,默认使用的是asci码,这时我们需要对其编码进行转换.当然方法有很多种, ...

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

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

  5. 属性处理器Spring攻略学习笔记(2.12)------外部化Bean配置

    PS:今天上午,非常郁闷,有很多单简基础的问题搞得我有些迷茫,哎,码代几天不写就忘.目前又不当COO,还是得用心记码代哦! 一.知识点 Spring中PropertyPlaceholderConfig ...

  6. spring源码分析之context:component-scan/vsannotation-config/

    1.<context:annotation-config/> xsd中说明: <xsd:element name="annotation-config"> ...

  7. Spring学习总结(20)——Spring加载多个项目properties配置文件问题解决

    多数的鲜为人知方法都是因为有着罕见的应用,就比如说Spring中PropertyPlaceholderConfigurer这个类,它是用来解析Java Properties属性文件值,并提供在spri ...

  8. Spring MVC框架的高级配置

    前言: 本文将为您提供关于Spring MVC框架的配置技巧,以帮助管理基于Spring的web应用程序的多个实例.本配置管理主题常被学术界所忽略,但是,这对于现实的web开发尤为重要.本主题并不直接 ...

  9. Spring测试试题

    下列关于Spring特性中IOC描述错误的是( A ). A. IOC就是指程序之间的关系由代码直接操控 B. 所谓"控制反转"是指控制权由应用代码转到外部容器,即控制权的转移 C ...

最新文章

  1. Python几种主流框架
  2. python 多态 知乎_Python函数接口的一些设计心得
  3. Linux IPC POSIX 消息队列
  4. 前端开发的浏览器知识
  5. leetcode208. 实现 Trie (前缀树)
  6. java简单的复数类_Java练习 SDUT-4303_简单的复数运算(类和对象)
  7. Java编写学生类student程序_编写一个JAVA程序片断定义一个表示学生的类student.docx...
  8. Linux常用命令4(grep、df、du、awk、su、ll)
  9. ALSA音频工具amixer,aplay,arecord
  10. 计算机网络学习笔记(7. 报文交换与分组交换①)
  11. HttpClient 教程 (六)
  12. MATLAB常用正则表达式记录
  13. 2018人工智能发展盘点:国内各行业拥抱AI,总体呈现八大特点
  14. 贝叶斯信息融合 MATLAB,信息融合理论研究进展:基于变分贝叶斯的联合优化
  15. 组策略锁定计算机时间,Win7电脑怎么禁止修改系统时间?两种禁止方法全教给你!...
  16. 诺奖得主:2030年中国帕金森疾病患者将超过美国
  17. 日语动词的て形歌,歌词
  18. 类360极速浏览器官网html
  19. TutorialsPoint NumPy 教程(转)
  20. 网上购车平台蛋蛋订车上私户兴起,与汽车之家联合开展青少年嘉年华

热门文章

  1. mysql 字符转换函数是_MySQL日期和字符串转换函数
  2. ip地址合不合法怎么看_电子印章合不合法?两部门再发意见认定
  3. java验证码工具_java 验证码工具
  4. Python二级笔记(5)
  5. java文件 linux_Linux执行Java文件
  6. 眼图 非差分线_利用眼图解决USB在布线中的信号完整性问题
  7. python程序显示自己的版权_手把手教你Pycharm皮肤主题及个性化设置,python程序员必备-Go语言中文社区...
  8. val_loss突然变很大_女朋友突然变得很冷淡是怎么回事?该怎么办
  9. 浏览器拦截跨域请求处理方法(已阻止跨源请求:同源策略禁止读取远程资源)
  10. Linux的启动流程简析(以Debian为例)