使用 Apollo 为静态变量赋值的方法

2023-05-16

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

但是,在使用 Apollo 的时候,我们可能会遇到这样的场景:

  • 在类中,想要为静态属性赋值

我们且不考虑什么时候会出现这样的需求,仅考虑如果有这样的需求,我们应该怎么处理?实际上,Apollo 仅支持直接为非静态属性赋值,因此当我们有这样的需求的时候,就需要我们变通一下,通过一些小技巧,来达成我们的目的了。

以下面的ApolloConfig代码为例,我们分别为非静态属性name和静态属性address赋值:

@Configuration
@EnableApolloConfig
public class ApolloConfig {

    @Value("${csdn.name:NONE}")
    private String name;
    
    private static String address;
   
    @Value("${csdn.address:NONE}")
    public void setAddress(String param) {
        address = param;
    }
    
    public static String getAddress() {
        return address;
    }
}

如上述代码所示,我们需要同时启用@Configuration@EnableApolloConfig注解让 Apollo 配置生效,但如果我们使用 Spring Boot 或者 Spring Cloud 项目的话,一般都会将这两个注解加到统一的配置类或者启动类上面,因此就不过多的介绍了。

其中,我们使用@Value("${csdn.name:NONE}")为非静态属性name赋值,并添加了默认值NONE,即当我们没有在 Apollo 配置中心配置该属性值的时候,Apollo 会自动将NONE作为默认值,赋值给name属性。

而对于静态属性address,我们直接使用@Value注解是不生效的,但是我们可以将@Value("${csdn.address:NONE}")注解添加到非静态方法setAddress(String param)上面,通过参数注入的时候,将 Apollo 配置的值传递给静态属性address,然后我们在通过静态方法getAddress(),获取静态属性address的值。

值得注意的是,上面例子中使用的方法名是自定义的,不一定非得和参数名一致,根据需要自定义即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Apollo 为静态变量赋值的方法 的相关文章

随机推荐

  • Win10系统自动更新失败(错误代码0x800f0922)

    笔者最近遇到了Win10系统自动更新失败的问题 xff0c 错误代码0x800f0922 每次更新下载安装完 xff0c 重启电脑的时候就会提示 xff1a 我们无法完成更新 正在撤销更改 在设置 Windows更新中有 xff1a 202
  • Linux yum安装redis

    1 安装redis数据库 yum install redis 2 下载fedora的epel仓库 yum install epel release 3 启动redis服务 systemctl start redis 4 查看redis状态
  • Centos 开启X11 Forwarding,实现无桌面环境运行GUI软件

    文章目录 修改SSH配置文件sshd config安装 X11 Forwarding 相关软件重启 sshd 服务 xff0c 并重新SSH连接验证 我们新安装Centos时可能会选择最小安装 xff0c 不安装桌面环境 xff0c 但是后
  • Python pyttsx3|文本朗读(各种语言)

    Python文字转语音 程序员 xff0c 在其他人眼中往往都是高冷的存在 xff0c 在他们的眼中能用代码解决的问题绝对不考虑其他的方法 xff0c 本文让我们用Python来提升一下高冷的档次 xff0c 让我们用代码来 说话 安装py
  • Spring Security 出现 'login.html?error' is not a valid redirect URL 异常

    原因是这个URL地址要以 打头 例如 xff1a 报错的代码 xff1a http span class token punctuation span span class token function formLogin span spa
  • 5. Python3的基本类型(元组)

    Python3的基本类型 xff08 元组 xff09 1 Python 的元组与列表相似 xff0c 不同之处 xff1a 元组不能修改 xff0c 元组使用小括号 xff0c 列表使用方括号 2 元组的创建 xff1a 只需要在括号中添
  • group by内部排序

    规则 xff1a 第一 xff0c 凡是在group by后面出现的字段 xff0c 必须同时在select后面出现 xff1b 第二 xff0c 凡是在select后面出现的 同时未在聚合函数中出现的字段 xff0c 必须同时出现在gro
  • 李宏毅机器学习(四)Spatial Transformer Layer

    学习内容 架构 xff1b 目的就是克服CNN的旋转和缩放不变性的缺点的 xff01 前情提要 CNN is not invariant to scaling and rotation xff1b CNN对缩放和旋转不是不变的 xff1b
  • python修改pip安装镜像源

    pip 默认的安装源安装真的很慢 xff0c 所以我们可以换成国内的一些优质的安装源 通用临时方法 pip install package name i https pypi tuna tsinghua edu cn simple 永久修改
  • 深入理解 Java 线程池的实现原理

    文章目录 1 线程状态2 线程池2 1 线程池的作用2 2 线程池的实现2 2 1 线程池内部状态 1 线程状态 既然要说线程 xff0c 我们就先来了解一下线程的几种状态 xff1a span class token keyword pu
  • windows server安装域控及原理(小白向)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 安装环境一 安装域控二 说明一下遗留的问题总结 这个是一系列的博客文章 xff0c 域控只是开始 安装环境 windwos任意s
  • 详述 Redis 选择单线程模型的原因以及 I/O 多路复用

    文章目录 Redis 选择单线程模型的原因概述设计单线程模型可维护性并发处理性能瓶颈 引入多线程删除操作 总结 Redis 和 IO 多路复用几种 I O 模型Blocking I OI O 多路复用 Reactor 设计模式I O 多路复
  • 新一代垃圾回收器 ZGC 的探索与实践

    文章目录 GC之痛CMS 与 G1 停顿时间瓶颈标记阶段停顿分析清理阶段停顿分析复制阶段停顿分析 ZGC原理全并发的 ZGCZGC 关键技术ZGC 并发处理演示 ZGC 调优实践调优基础知识理解 ZGC 重要配置参数理解 ZGC 触发时机理
  • 详述 Spring 中 Bean 的作用域、事务的隔离级别以及传播行为

    文章目录 Bean 作用域XML 声明singletonprototyperequestsessionglobalSession 注解声明 事务隔离级别事务传播行为 Bean 作用域 Spring IOC 容器创建一个 Bean 实例时 x
  • 饿了么交易系统 5 年演化史

    作者介绍 xff1a 杨凡 xff0c 花名挽晴 xff0c 饿了么高级架构师 xff0c 2014 年加入饿了么 xff0c 2018 年随饿了么被阿里巴巴收购一同加入阿里巴巴 xff0c 4 年团队管理经验 xff0c 4 年主要从事饿
  • 带你了解「美团、百度和滴滴」的分布式 ID 生成系统

    文章目录 美团背景常见方法介绍UUID类snowflake方案数据库生成 Leaf 方案实现Leaf segment 数据库方案双 buffer 优化Leaf 高可用容灾 Leaf snowflake 方案弱依赖 ZooKeeper解决时钟
  • Spring Cloud 优雅下线以及灰度发布

    文章目录 前言优雅下线常见的下线方式优雅的下线方式 灰度发布蓝绿部署滚动部署金丝雀部署 前言 在生产环境中 xff0c 如何保证在服务升级的时候 xff0c 不影响用户的体验 xff0c 这个是一个非常重要的问题 如果在我们升级服务的时候
  • 详述 IntelliJ IDEA 遇到 Maven 项目 pom.xml 文件没有识别的解决方法

    文章目录 问题现象解决方法 问题现象 有的时候 xff0c 我们可能会遇到 IDEA 没有识别 Maven 项目pom xml的问题 xff0c 其表现出来的现象就是 xff1a 究其原因 xff0c 就是 IDEA 把pom xml文件当
  • Spring Boot 自定义 Swagger2 请求 URL 路径的两种方法

    文章目录 前言方法一 xff1a 修改应用根路径方法二 xff1a 引入 Swagger2 前端代码总结 前言 首先 xff0c 把 Swagger2 的依赖引进来 xff1a span class token comment lt swa
  • 使用 Apollo 为静态变量赋值的方法

    Apollo xff08 阿波罗 xff09 是携程框架部门研发的分布式配置中心 xff0c 能够集中化管理应用不同环境 不同集群的配置 xff0c 配置修改后能够实时推送到应用端 xff0c 并且具备规范的权限 流程治理等特性 xff0c