Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper回实现远程配置读取
说明:
通常项目中会通过PropertyPlaceholderConfigurer加载properties中的配置信息。前几天 被人问到Spring如何加载ZooKeeper中的信息时一脸茫然。看了几篇博文后记录一下过程,并附上测试代码。
环境:
操作系统:windows7
开发工具:idea 14
软件项目管理工具:maven
项目依赖:comm-lang、spring3.2.4、junit4、hamcrest、zookeeper、curator
过程描述:
1.下载Zookeeper
下载地址:http://apache.mirrors.ionfish.org/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
2.修改Zookeeper配置文件
将zoo_sample.cfg改名为zoo.cfg
并将其中的dataDir改为本机地址,如:dataDir=E:\soft\zookeeper-3.3.6\dataDir
3.启动Zookeeper
运行服务端:%ZooKeeper_Home%/bin/zkServer.cmd
运行客户端:%ZooKeeper_Home%/bin/zkClil.cmd
4.添加数据
[zk: localhost:2181(CONNECTED) 17] create /cfg - created /cfg [zk: localhost:2181(CONNECTED) 17] create /cfg/properties jdbc.driver=org.mysql. driver created /cfg/properties [zk: localhost:2181(CONNECTED) 17] get /cfg/properties jdbc.driver=org.mysql.driver cZxid = 0x7a ctime = Mon May 25 18:01:59 CST 2015 mZxid = 0x7a mtime = Mon May 25 18:01:59 CST 2015 pZxid = 0x7a cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 28 numChildren = 0
5.将附件中的代码导入到idea中运行startup.java或ZookeeperConfigTest.java
不足:
对于zookeeper中的配置信息,如何在被Spring加载后又修改了,如何重新载入本人还没找到好的办法
参考:
Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper来实现远程配置读取。
http://www.big-mouth.cn/blog/65.html
读取WEB-INF 下applicationContext.xml配置文件的信息方法
http://blog.sina.com.cn/s/blog_5d7dbcef0100tuqn.html
用spring 配置加载properties文件的时候,报Could not resolve placeholder 错误。
解决参考:http://blog.163.com/wf_shunqiziran/blog/static/176307209201282755010505/