本篇文章主要讲述如何使用zookeeper实现配置中心,以及在修改配置信息时热更新至项目中,无需重启项目即可得到最新的配置信息。
1、自定义Spring加载配置文件的方式
(1)在Spring配置文件声明自定义的配置文件类
ZookeeperPropertiesConfigure

(2)编写自定义的配置类ZookeeperPropertiesConfigure并继承自
org
.
springframework
.
beans
.
factory
.
config
.PropertyPlaceholderConfigurer类,重写父类中的mergeProperties方法,源码如下:

ZookeeperConfig.getConfig()代码如下,listener()方法后面会讲到:

代码意思是首先从系统配置中如tomcat配置中找到zkHost声明zookeeper地址如“
192.168.0.23:2181
”,构建zookeeper连接客户端,根据ZookeeperPropertiesConfigure中配置的初始参数locationList到zookeeper找到名称为该值的znode,并读取该znode的值,该znode的键值对就是我们需要的配置信息,将配置数据封装成properties并放入mergeProperties中,至此Spring就可以加载配置信息了,在java类中直接使用@value注解,在spring配置中使用如
${dubbo.order.group:order}来获取配置信息。
2、编写zookeeperFactory用于构建zookeeper客户端&#x