本篇文章主要讲述如何使用zookeeper实现配置中心,以及在修改配置信息时热更新至项目中,无需重启项目即可得到最新的配置信息。
1、自定义Spring加载配置文件的方式
(1)在Spring配置文件声明自定义的配置文件类
ZookeeperPropertiesConfigure
![](https://i-blog.csdnimg.cn/blog_migrate/4b756a45e0b7fff020b7f20c9f6dce63.png)
(2)编写自定义的配置类ZookeeperPropertiesConfigure并继承自
org
.
springframework
.
beans
.
factory
.
config
.PropertyPlaceholderConfigurer类,重写父类中的mergeProperties方法,源码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/8e978003fe24b09b6670af1d9b0def38.png)
ZookeeperConfig.getConfig()代码如下,listener()方法后面会讲到:
![](https://i-blog.csdnimg.cn/blog_migrate/890f3d6c96bdbd6e997f37773ee001d3.png)
代码意思是首先从系统配置中如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