全部产品

使用注解标识配置类

更新时间:2020-02-18 09:25:21

动态配置的主要编程方式为使用注解标识配置类信息,参见 开始使用动态配置 了解如何完全使用注解方式配置一个动态配置类。通过本文,您将了解如何覆盖注解配置,实现更灵活的动态配置类初始化。

本文包含以下内容:

覆盖注解配置的方法

动态配置客户端提供两种方式注册配置类:

  1. # 1. 直接注册含有所有注解配置的配置类
  2. DistributedResourceManager#register(Object resourceObject);
  3. # 2. 注册配置类实例的同时,传入覆盖注解的配置项,Config 包含 @DObject 中的所有属性,Config 中配置的值会覆盖注解配置
  4. DistributedResourceManager#register(Object resourceObject, Config config);

属性注解高阶用法

动态配置默认用法是,当服务端推送配置后,客户端启动时会默认同步加载服务端配置值。如果希望服务端配置值仅在运行期生效,或者不希望客户端在启动期同步拉取配置值,可通过 @DAttribute 中的 DependencyLevel 来定义此属性的依赖等级。

属性依赖等级有以下几种:

依赖等级 依赖描述
NONE 无依赖,启动期不加载服务端值,启动此级别后,客户端仅会接收在运行期间服务端产生的配置推送。
ASYNC 异步更新,启动期异步加载服务端值,不关注加载结果。
WEAK 弱依赖,启动期同步加载服务端推送值,当服务端不可用时不影响应用正常启动;服务端可用后,客户端会依靠心跳检测重新拉取到服务端值。
STRONG 强依赖,启动期同步加载服务端值,如服务端未设置值则使用代码初始化值,如从服务端获取数据请求异常或客户端设值异常时均会抛出异常,应用启动失败。
EAGER 最强依赖,启动期必须拉取到服务端值,如服务端未推送过值则抛异常,应用启动失败。