org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的systemPropertiesModeName属性
转自:https://www.cnblogs.com/huqianliang/p/5673701.html
使用PropertyPlaceholderConfigurer类载入外部配置
在Spring项目中,你可能需要从properties文件中读入配置注入到bean中,例如数据库连接信息,memcached server的地址端口信息等,这些配置信息最好独立于jar包或者war包,这样便于修改配置。Spring提供了PropertyPlaceholderConfigurer类来处理这件事情。
例如,要载入配置文件中的mysql配置信息:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mypage
jdbc.username=root
jdbc.password=123456
我们需要在spring配置文件中定义PropertyPlaceholderConfigurer的location属性,这个location指向配置文件的位置:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property name="location" value="file:${APP_HOME}/conf/mypage.properties"/>
</bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
在上面的例子中PropertyPlaceholderConfigurer
类的systemPropertiesModeName
的属性是SYSTEM_PROPERTIES_MODE_OVERRIDE
这意味着可以从jvm虚拟机的参数中获得配置信息。
配置location的值中的${APP_HOME}可以根据环境不同设置不同的值,例如在开发环境,设置开发环境的目录,而在线上环境就要配置线上配置文件的路径了。
对于jar包文件,需要在启动jar包时指定APP_HOME的值,例如:
java -classpath test.jar -DAPP_HOME=/data0/conf cn.outofmemory.App
而对于运行在tomcat容器中的war包,需要修改下tomcat目录下的bin/catalina.sh文件,在此文件中添加或者修改如下变量的值:
JAVA_OPTS="-Xms2560m -Xmx5120m -DAPP_HOME=/application/outofmemory.cn/conf/"
注意-Xms2560m -Xmx5120m
是为了修改虚拟机的内存值,-DAPP_HOME才影响配置文件位置。
给PropertyPlaceholderConfigurer指定必要的属性之后就可以通过${variable}的形式将配置文件中的值植入到bean中了。
如果你希望将配置文件放在jar包或者war包内,那么需要将location中的file:去掉,例如在war包中通常会放在/WEB-INF/conf路径下,那么可以这么写:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property name="location" value="/WEB-INF/conf/mypage.properties"/>
</bean>
最新文章
- 【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】
- JVM垃圾回收机制总结:调优方法
- jboss服务器修改端口说明
- 转一篇老外写的博文:Android automated testing (Robotium)
- C#中TreeView与数据库绑定
- python 的 class
- Dictionary<;string, string>; 排序
- Android Studio 常见问题及解决方法
- RESTful相关理解
- java读取pdf和MS Office文档
- 图->;最短路径->;多源最短路径(弗洛伊德算法Floyd)
- winfrom进程、线程、用户控件
- BitSet的用法
- Struts2 的 配置
- vue2.0+Element-ui实战案例
- 关于最近WIN7系统错误711的解决办法
- Anaconda 包管理工具 conda 进行虚拟环境管理入门
- 利用spring的CommonsMultipartResolver上传文件
- WebDriver高级应用——操作Web页面的滚动条
- Amazon - removed your selling privileges and placed a temporary hold on any funds - 1
热门文章
- 08--C++拷贝构造函数详解
- Delphi 不用标题栏移动窗体
- 编程领域中的 ";transparent"; 和 ";opaque";
- windows 下安装mysql 成功版
- 数据清理,预处理 pandas dataframe 操作技巧 总结
- SSL证书在线申请和取回证书指南
- python 生成HTmL报告页面 V1.2
- eas之去掉关闭eas页面时校验是否修改的提示
- [jzoj 5782]【NOIP提高A组模拟2018.8.8】 城市猎人 (并查集按秩合并+复杂度分析)
- linux文件的特殊权限及隐藏权限