文章目录
disconf-web的安装已省去,如果安装麻烦,可以使用公司的或别人的。
0. 新建一个SpringBoot项目
引入web依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
引入disconf依赖:
<dependency>
<groupId>com.baidu.disconf</groupId>
<artifactId>disconf-client</artifactId>
<version>2.6.36</version>
</dependency>
引入redis依赖:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
1. 新建一个JedisConfig
建议放在config包下
里面有两个属性host和port,接下来就会从disconf里取这两个属性。
@Service
@Scope("singleton")
@DisconfFile(filename = "redis.properties")
public class JedisConfig {
// 代表连接地址
private String host;
// 代表连接port
private int port;
/**
* 地址
*
* @return
*/
@DisconfFileItem(name = "redis.host", associateField = "host")
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
/**
* 端口
*
* @return
*/
@DisconfFileItem(name = "redis.port", associateField = "port")
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
}
2. 创建disconf配置文件
在resource目录下,新建一个disconf.properties:
# 是否使用远程配置文件
# true(默认)会从远程获取配置 false则直接获取本地配置
enable.remote.conf=true
#
# 配置服务器的 HOST,用逗号分隔 127.0.0.1:8000,127.0.0.1:8000
#
conf_server_host=47.100.172.15:8085
# 版本, 请采用 X_X_X_X 格式
version=1_0_0_0
# APP 请采用 产品线_服务名 格式
app=disconf_demo
# 环境
env=rd
# debug
debug=true
# 忽略哪些分布式配置,用逗号分隔
ignore=
# 获取远程配置 重试次数,默认是3次
conf_server_url_retry_times=1
# 获取远程配置 重试时休眠时间,默认是5秒
conf_server_url_retry_sleep_seconds=1
这里的conf_server_host、version、app、env要和disconf-web服务器一致。
3. 创建disconf配置类
建议放在config包下
@Configuration(value = "disConfConfig")
public class DisconfConfig {
/**
* 配置此项以支持disconf注解配置
*
* @return
*/
@Bean
public DisconfMgrBean disconfMgrBean() {
DisconfMgrBean disconfMgrBean = new DisconfMgrBean();
disconfMgrBean.setScanPackage("top.lsyweb.disconflearn"); // 包名需修改
return disconfMgrBean;
}
/**
* 配置此项以支持@Disconf配置类内部对属性进行操作
*
* @return
*/
@Bean(destroyMethod = "destroy", initMethod = "init")
public DisconfMgrBeanSecond disconfMgrBean2() {
return new DisconfMgrBeanSecond();
}
}
4. 创建redis连接类
建议放在service包下
@Service
@Scope("singleton")
public class SimpleRedisService implements InitializingBean, DisposableBean
{
protected static final Logger LOGGER = LoggerFactory
.getLogger(SimpleRedisService.class);
// jedis 实例
private Jedis jedis = null;
/**
* 分布式配置
*/
@Autowired
private JedisConfig jedisConfig;
/**
* 关闭
*/
public void destroy() throws Exception {
if (jedis != null) {
jedis.disconnect();
}
}
/**
* 进行连接
*/
public void afterPropertiesSet() throws Exception {
LOGGER.info("连接redis Host:{},Port:{}", jedisConfig.getHost(), jedisConfig.getPort());
jedis = new Jedis(jedisConfig.getHost(), jedisConfig.getPort());
}
/**
* 获取一个值
*
* @param key
* @return
*/
public String getKey(String key) {
if (jedis != null) {
return jedis.get(key);
}
return null;
}
}
其中的afterPropertiesSet方法会自动执行,根据打印信息,可以判断是否读入成功。
5. 在disconf-web中添加配置文件
进入disconf-web控制台,在app:disconf_demo且rd环境下添加一个redis.properties,内容为:
redis.host=127.0.0.1 # 可换成redis真实服务器地址
redis.port=6379 # 可换成redis真实服务器端口

6. 启动项目
可在启动日志上看到:
连接redis Host:127.0.0.1,Port:6379
代表成功从disconf读取到了对应配置。
本文介绍了如何在SpringBoot项目中使用disconf-client进行配置管理。首先新建SpringBoot项目,引入web、disconf和redis相关依赖。接着创建JedisConfig配置类,设置从disconf获取的属性。然后在resource下创建disconf.properties文件,并在disconf-web服务器上添加配置。创建disconf配置类并实现自动加载配置。最后,通过redis连接类验证配置是否成功读取。

2045

被折叠的 条评论
为什么被折叠?



