disconf-client的简单使用

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

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包下

里面有两个属性hostport,接下来就会从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_hostversionappenv要和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读取到了对应配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值