动态配置的主要编程方式为使用注解标识配置类信息。本文介绍如何覆盖注解配置,实现更灵活的动态配置类初始化。
说明
如何完全使用注解方式配置一个动态配置类,请参见 开始使用动态配置。
覆盖注解配置方式
动态配置客户端提供两种方式注册配置类:
直接注册含有所有注解配置的配置类
DistributedResourceManager#register(Object resourceObject);
注册配置类实例的同时,传入覆盖注解的配置项
DistributedResourceManager#register(Object resourceObject, Config config);
Config 包含
@DObject
中的所有属性,在 Config 中配置的值会覆盖注解配置。
属性注解高阶用法
动态配置默认用法是当服务端推送配置后,客户端启动时会默认同步加载服务端配置值。如果您希望服务端配置值仅在运行期生效,或者不希望客户端在启动期同步拉取配置值,可通过 @DAttribute
中的 DependencyLevel
来定义此属性的依赖等级。
属性依赖等级有以下几种:
依赖等级 | 依赖描述 |
NONE | 无依赖,启动期不加载服务端值。启动此级别后,客户端仅会接收在运行期间服务端产生的配置推送。 |
ASYNC | 异步更新,启动期异步加载服务端值,不关注加载结果。 |
WEAK | 弱依赖,启动期同步加载服务端推送值。当服务端不可用时不影响应用正常启动;服务端可用后,客户端会依靠心跳检测重新拉取到服务端值。 |
STRONG | 强依赖,启动期同步加载服务端值。如服务端未设置值,则使用代码初始化值。如从服务端获取数据请求异常或客户端设值异常时,均会抛出异常,应用启动失败。 |
EAGER | 最强依赖,启动期必须拉取到服务端值。如服务端未推送过值则抛异常,应用启动失败。 |
文档内容是否对您有帮助?