Spring的PropertyPlaceholderConfigurer应用

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配置文件传递参数。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539471.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

safari浏览器_吹爆苹果自带浏览器Safari,没有比它更贴心的浏览器了!!

大家一定觉得苹果的很多自带软件很难用对不对&#xff1f;嘻嘻&#xff0c;我觉得这正是苹果的魅力所在&#xff0c;它的很多产品与我们的正常使用习惯思维之间存在着一堵看不见的墙&#xff0c;只有当你你花点时间去研究、去驾驭它&#xff0c;把那堵墙给它推倒&#xff0c;然…

drcom linux怎么运行,linux下使用drcom登录认证

下载首先感谢开发者:https://github.com/drcoms/drcom-generic这个项目基于python实现了d,p,x版drcom认证,请到上述链接查看相关信息,项目的wiki简单介绍了各版本的使用方法.首先下载上面的drcom-generic,我将其下载到了家目录~/下,完整目录:~/drcom-generic取得必要信息下面启…

升级浏览器_星愿浏览器升级至6.3.2000.2001

玩懂手机网资讯&#xff0c;星愿浏览器升级至6.3.2000.2001&#xff0c;可能很多玩友都不熟悉这款浏览器&#xff0c;星愿浏览器(Twinkstar Browser)是一款使用chromium内核来自一首英文歌曲《 Twinkle, twinkle, little star》&#xff0c;选twinkle的名词twink&#xff0c;组…

mybatis3 添加ehcache支持

为了提高MyBatis的性能,有时候我们需要加入缓存支持,目前用的比较多的缓存莫过于ehcache缓存了,ehcache性能强大,而且位各种应用都提供了解决方案,在此我们主要是做查询缓存,提高查询的效率. 在Mybatis的官网上把集成ehcache的文档下载下来看了看,说的太简单了,对于新手很难理解…

添加自定义监控项目,配置邮件告警,测试告警,不发邮件的问题处理

2019独角兽企业重金招聘Python工程师标准>>> 添加自定义监控项目 需求&#xff1a;监控某台web的80端口连接数&#xff0c;并出图两步&#xff1a;1&#xff09;zabbix监控中心创建监控项目&#xff1b;2&#xff09;针对该监控项目以图形展现对于第一步&#xff0c…

高通骁龙cpu排行_骁龙系列处理器性能分析,你的手机是什么处理器?

首先来看下目前使用比较多的骁龙处理器排行毫无疑问8系列最新出的骁龙855 Plus性能最强&#xff0c;刚刚发布的vivo NEX 3 5G版搭载的就是这款处理器。那么到底855和855 Plus有什么区别呢&#xff1f;一张图告诉大家从表格可以看出来&#xff0c;骁龙855和骁龙855CPU采用的都是…

服务器cpu_服务器CPU与GPU协同运算加速三巨头竞争

来源&#xff1a;内容来自「MoneyDJ」&#xff0c;谢谢。根据DIGITIMES Research分析师翁书婷观察&#xff0c;高速运算需求下&#xff0c;服务器CPU与GPU协同运算趋势将加速NVLink、CCIX(Cache Coherent Interconnect for Accelerators)、CXL(Compute Express Link)与Gen-Z等开…

myeclipse去掉js报错

选中报错的js文件&#xff0c; 右键选择 MyEclipse-->Exclude From Validation &#xff1b; 然后继续右键执行MyEclipse-->Run Validation 即可

python继承

为什么80%的码农都做不了架构师&#xff1f;>>> #继承 #衍生的类&#xff08;子类&#xff09;继承父类的方法和数据成员 #语法&#xff1a; # class 子类&#xff1a;父类 # {......} #子类继承父类&#xff0c;父类派生子类。父类又叫基类&#xff0c;子类又叫派生…

cpu散热器怎么拆_电脑CPU处理器与整机温度高 教你简单解决

炎炎夏日&#xff0c;电脑卡、慢、死机、关机多数是中央处理器(以下简称CPU)温度过高引起的。如果有上述感觉&#xff0c;那么你很可能就是这个病症。第一步、需要确定真正是否为温度高的问题&#xff0c;先不要着急拆机&#xff0c;软件测试&#xff0c;一般用百度搜索《鲁大师…

MyEclipse里运行Tomcat后,Console窗口里中文显示乱码

windows-preferences-搜索tomcat 修改为 UTF-8 或 gbk

linux查看raid情况工具,使用MegaCli工具查看Raid磁盘阵列状态

转载自&#xff1a;http://home.51.com/chenjianghui1987/diary/item/10051836.html文章本身我不做过多修改了&#xff0c;在这里我就把自己在安装时候碰到的难点跟大家提下。1.何处下载&#xff1f;首先&#xff0c;根据文章中的路径已经下载不到相应的文件了&#xff0c;在此…

终端不能联网_5G和物联网DDA的关系

多年以来&#xff0c;物联网一直是一个大家耳熟能详又不知为何物的东西&#xff0c;而物联网的定义也随着技术的进步和应用场景的改变而不断的变化和演化。以前&#xff0c;物联网WLAN物联网(就是WiFi、蓝牙、ZigBee...)。而如今物联网WLAN物联网蜂窝物联网(2/3/4G、NB、LoRa、…

linux磁盘fio压力测试,fio进行磁盘压力测试

fio可以用来测试磁盘IO常用的参数如下&#xff1a;filename/dev/emcpowerb 支持文件系统或者裸设备&#xff0c;-filename/dev/sda2或-filename/dev/sdbdirect1 测试过程绕过机器自带的buffer&#xff0c;使测试结果更真实rwrandwread 测试随机读的…

SpringMVC 实例 --非注解【过时的,留作回忆】

练习项目&#xff1a;test SpringMVC 实例 --非注解&#xff0c;只用于学习理解。到了spring 3.0以后或许部分东西已经过时了&#xff0c;在实际工作中并不一定好用。 但对于理解SpringMVC的实现方式很有帮助&#xff0c;在以后使用注解时&#xff0c;会明白是怎么个来龙去脉&a…

云场景实践研究第27期:袋鼠云

更多云场景实践研究案例&#xff0c;点击这里&#xff1a;【云场景实践研究合集】联合不是简单的加法&#xff0c;而是无限的生态&#xff0c;谁会是下一个独角兽 随着网站论坛粉丝数高涨&#xff0c;原有系统架构和服务器性能已无法满足热情高涨的粉丝需求。同时&#xff0c;网…

怎么在电脑上看磁盘分配单元的大小_电脑磁盘到底该不该分区?怎么分区?

“哥&#xff0c;在吗&#xff1f;在你家新买的adolbook14 2020怎么只有一个C盘啊?”“电脑磁盘怎么重新分区啊&#xff1f;在线等&#xff01;急&#xff01;”“本电脑小白可太骄傲了&#xff0c;我居然自己给电脑磁盘分区了&#xff0c;一通操作猛如虎&#xff01;”……那…

电脑如何进入bios模式_华硕笔记本电脑开机自动进入BIOS界面怎么办?

最近很多人的华硕牌子笔记本有问题&#xff0c;说自己开机就直接进入BIOS了。对于这些小白来说&#xff0c;一脸懵逼啊&#xff0c;不知道怎么解决&#xff0c;其实大家也不要着急&#xff0c;坚哥来简单帮大家分析一下。第一、可能系统的文件被更改&#xff0c;从而导致无法启…

springmvc在controller和视图之间传递参数

从视图向controller传递值&#xff0c; controller <--- 视图 1&#xff09;简单类型&#xff0c;如int, String, 应在变量名前加RequestParam注解&#xff0c;例如&#xff1a; RequestMapping("hello3")public String hello3( RequestParam("name" …

苹果手机怎么清理听筒灰尘_怎么清理手机听筒的灰尘?

作为一个专业的强迫症从业者&#xff0c;我已经看不惯手机听筒的灰尘很久了&#xff0c;在经历无数次失败之后&#xff08;针&#xff0c;牙刷&#xff0c;牙签&#xff0c;吸尘器等等&#xff09;。我必须要来分享一个超级实用的方法清理手机听筒的灰尘。那就是&#xff0c;起…