全部产品

使用注解标识配置类

更新时间:2021-02-09 10:33

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

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

本文包含以下内容:

覆盖注解配置的方法

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

# 1. 直接注册含有所有注解配置的配置类

DistributedResourceManager#register(Object resourceObject);

# 2. 注册配置类实例的同时,传入覆盖注解的配置项,Config 包含 @DObject 中的所有属性,Config 中配置的值会覆盖注解配置

DistributedResourceManager#register(Object resourceObject, Config config);

属性注解高阶用法

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

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

依赖等级

依赖描述

NONE

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

ASYNC

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

WEAK

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

STRONG

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

EAGER

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