本文共 3278 字,大约阅读时间需要 10 分钟。
在使用 Disconf 前,需确保以下环境条件已满足:
在项目根目录下,修改 pom.xml 文件,添加必要的依赖:
com.baidu.disconf disconf-client 2.6.36
创建 resource/disconf.properties 文件,配置 Disconf 客户端参数:
# 是否启用远程配置 (默认为 true)enable.remote.conf=true# Disconf 服务器地址conf_server_host=192.168.75.128:8085# 应用名称app=springboot-demo# 配置版本version=V1_0_0# 环境标识envenv=local# 配置下载目录user_define_download_dir=./disconf/download# 忽略的配置项(以逗号分隔)ignore=
在 src/main/resources/application.properties 中添加配置:
test.username=useradmintest.password=passward
在 src/test/resources/test.properties 中添加配置:
aaa=bbbbb
创建 com/example/demo/config/DisconfConfig.java,定义配置模型:
@Data@Component@DisconfFile(filename = "application.properties")public class DisconfConfig { private String username; private String password; @DisconfFileItem(name = "test.username") public String getUsername() { return username; } @DisconfFileItem(name = "test.password") public String getPassword() { return password; }} 创建 com/example/demo/callback/DisconfUpdateCallback.java,实现配置变更的回调:
package com.example.demo.callback;import com.baidu.disconf.client.common.annotations.DisconfUpdateService;import com.example.demo.config.disconf.DisconfConfig;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Component@DisconfUpdateService(classes = {DisconfConfig.class})public class DisconfUpdateCallback implements IDisconfUpdate { @Autowired private DisconfConfig disconfConfig; @Override public void reload() throws Exception { System.out.println("配置更新成功,当前配置为:" + disconfConfig); }} 创建 com/example/demo/controller/TestController.java,用于展示配置信息:
package com.example.demo.controller;import com.example.demo.config.disconf.DisconfConfig;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class TestController { @Autowired private DisconfConfig disconfConfig; @RequestMapping(name = "test") public String test() { return disconfConfig.toString(); }} .├── src/│ ├── main/│ │ ├── java/│ │ │ └── com/│ │ │ └── example/│ │ │ ├── demo/│ │ │ │ ├── config/│ │ │ │ │ └── disconf/│ │ │ │ │ └── TestConfig.java│ │ │ │ └── callback/│ │ │ │ └── DisconfUpdateCallback.java│ │ │ └── controller/│ │ │ └── TestController.java│ │ └── resources/│ │ ├── disconf/│ │ │ └── disconf.properties│ │ └── application.properties│ └── test/│ └── resources/│ └── test.properties
启动应用后,访问 /test 端口,应能看到配置信息:
TestConfig{username='useradmin', password='passward'} 在 Disconf Web 界面中,添加实例并修改配置,修改后可在控制台看到更新日志:
配置更新成功,当前配置为:TestConfig{username='useradmin', password='passward'} 通过以上配置,实现了 Spring Boot 应用的配置管理与 Disconf 的有效结合。
转载地址:http://jgmsz.baihongyu.com/