使用注解标识配置类

动态配置的主要编程方式为使用注解标识配置类信息。本文介绍如何覆盖注解配置,实现更灵活的动态配置类初始化。

说明

如何完全使用注解方式配置一个动态配置类,请参见 开始使用动态配置

覆盖注解配置方式

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

  • 直接注册含有所有注解配置的配置类

    DistributedResourceManager#register(Object resourceObject);
  • 注册配置类实例的同时,传入覆盖注解的配置项

    DistributedResourceManager#register(Object resourceObject, Config config);

    Config 包含 @DObject 中的所有属性,在 Config 中配置的值会覆盖注解配置。

属性注解高阶用法

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

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

依赖等级

依赖描述

NONE

无依赖,启动期不加载服务端值。启动此级别后,客户端仅会接收在运行期间服务端产生的配置推送。

ASYNC

异步更新,启动期异步加载服务端值,不关注加载结果。

WEAK

弱依赖,启动期同步加载服务端推送值。当服务端不可用时不影响应用正常启动;服务端可用后,客户端会依靠心跳检测重新拉取到服务端值。

STRONG

强依赖,启动期同步加载服务端值。如服务端未设置值,则使用代码初始化值。如从服务端获取数据请求异常或客户端设值异常时,均会抛出异常,应用启动失败。

EAGER

最强依赖,启动期必须拉取到服务端值。如服务端未推送过值则抛异常,应用启动失败。