本文只贴相关代码段,完整代码请移步至本人github,若是喜欢,可以star给予支持
作者:o_cYj
博客专栏:
https://blog.csdn.net/o_cYj
目录
本文实现目标
- 重要的配置信息进行统一管理,例如数据库密码等。
- 项目端口号、上下文等可以直接设置在配置中心
- xml、properties、java、ftl文件可以轻松获取到配置中心的配置信息
前期工作
对于config_toolkit及zookeeper的安装及创建节点请自己查阅相关资料
config_toolkit初始配置可以参考https://github.com/dangdangdotcom/config-toolkit
具体实现
启动项设置
-Dconfig.zookeeper.connectString=localhost:2181
-Dconfig.rootNode=/project/module
-Dconfig.version=1.0.0
-Dconfig.groupName=sb2
其中
connectString为zookeeper的连接地址加端口号
rootNode为在zookeeper创建的根节点
version为版本号
groupName是你自己创建的组管理名称
导入相关jar包
<dependency>
<groupId>com.dangdang</groupId>
<artifactId>config-toolkit</artifactId>
<version>3.3.2-RELEASE</version>
</dependency>
applicationContext.xml
在applicationContext.xml中引入config_toolkit的相关配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"
default-lazy-init="true">
<description>Spring公共配置</description>
<bean id="configProfile" class="com.dangdang.config.service.zookeeper.ZookeeperConfigProfile">
<constructor-arg name="connectStr"
value="#{systemProperties['config.zookeeper.connectString']}" />
<constructor-arg name="rootNode" value="#{systemProperties['config.rootNode']}" />
<constructor-arg name="version" value="#{systemProperties['config.version']}" />
</bean>
<bean id="configGroupSources" class="com.dangdang.config.service.support.spring.ConfigGroupSourceFactory" factory-method="create">
<constructor-arg name="configGroups">
<list>
<bean class="com.dangdang.config.service.zookeeper.ZookeeperConfigGroup" c:configProfile-ref="configProfile" c:node="#{systemProperties['config.groupName']