如何引入 Spring Cloud AliCloud ACM
如果要在您的项目中引入 ACM , 使用 group ID 为 com.alibaba.cloud 和 artifact ID 为 spring-cloud-starter-alicloud-acm 的 starter 。
9.2. 使用 ACM 进行配置管理当客户端引入了 Spring Cloud AliCloud ACM Starter 以后 , 应用启动时会自动从配置管理的服务端获取配置信息 , 并注入到 Spring 的 Environment 中 。
以下是一个简单的应用示例 。
@SpringBootApplicationpublic class ProviderApplication {public static void main(String[] args) {ConfigurableApplicationContext applicationContext = SpringApplication.run(ProviderApplication.class, args);String userName = applicationContext.getEnvironment().getProperty("user.name");String userAge = applicationContext.getEnvironment().getProperty("user.age");System.err.println("user name :"+userName+"; age: "+userAge);}}
在从配置中心服务端获取配置信息之前 , 还需要配置服务端的地址 , 在 bootstrap.properties 中 , 还需要配置以下信息 。
# 必选 , 应用名会被作为从服务端获取配置 key 的关键词组成部分spring.application.name=acm-configserver.port=18081# 以下就是配置中心服务端的IP和端口配置spring.cloud.alicloud.acm.server-list=127.0.0.1spring.cloud.alicloud.acm.server-port=8080
此时没有启动配置中心 , 启动应用会报错 , 因此在应用启动之前 , 应当首先启动配置中心 。
9.2.1. 启动配置中心ACM 使用的配置中心有两种 , 一种是本地运行的轻量版配置中心 , 主要用于开发和本地调试 , 一种是阿里云产品 ACM 。 通常情况下 , 可以使用轻量版配置中心作为开发和测试环境 , 使用云上的 ACM 作为灰度和生产环境 。
使用轻量版配置中心轻量版配置中心的下载和启动方式可参考 这里
只需要执行文档中的第1步 (下载轻量配置中心) 和第2步 (启动轻量配置中心) 。
使用阿里云配置中心使用云上 ACM, 可以省去服务端的维护工作 , 同时稳定性也会更有保障 。 当使用云上配置中心时 , 代码部分和使用轻量配置中心并没有区别 , 但是配置上会有一些区别 。
【如何引入 Spring Cloud AliCloud ACM】以下是一个简单的使用云上配置中心的配置示例 , 配置详情需要在 ACM控制台查询
# 应用名会被作为从服务端获取配置 key 的关键词组成部分 , 因此是必选spring.application.name=acm-config# 端口配置自由配置即可server.port=18081# 以下就是配置中心的IP和端口配置spring.cloud.alicloud.acm.server-mode=EDASspring.cloud.alicloud.access-key=你的阿里云AKspring.cloud.alicloud.secret-key=你的阿里云SKspring.cloud.alicloud.acm.endpoint=acm.aliyun.comspring.cloud.alicloud.acm.namespace=你的 ACM namespace , 需要在 ACM 控制台查询
EDAS 提供应用托管服务 , 如果你将应用托管到 EDAS , 那么 EDAS 将会自动为你填充所有与业务无关的配置 。
9.2.2. 在配置中心添加配置
- 启动好轻量版配置中心之后 , 在控制台中添加如下的配置 。
Group:DEFAULT_GROOUPDataId:acm-config.propertiesContent:user.name=jamesuser.age=18
DataId 的格式为 {prefix}.{file-extension},prefix 默认从配置 spring.application.name 中取值 , file-extension 默认的值为 "properties" 。9.2.3. 启动应用验证启动这个Example , 可以在控制台看到打印出的值正是我们在轻量版配置中心上预先配置的值 。
user name :james; age: 18
9.3. 更改配置文件扩展名spring-cloud-starter-alicloud-acm 中 DataId 默认的文件扩展名是 properties 。 除去 properties 格式之外 , 也支持 yaml 格式 。 支持通过 spring.cloud.alicloud.acm.file-extension 来配置文件的扩展名 , yaml 格式可以配置成 yaml 或 yml 。修改文件扩展名后 , 在配置中心中的 DataID 以及 Content 的格式都必须做相应的修改 。
9.4. 动态更新spring-cloud-starter-alicloud-acm 默认支持配置的动态更新 , 当您在配置中心修改配置的内容时 , 会发布 Spring 中的 RefreshEvent 事件 。 带有 @RefreshScope 和 @ConfigurationProperties 注解的类会自动刷新 。
你可以通过配置 spring.cloud.alicloud.acm.refresh.enabled=false 来关闭动态刷新 。
9.5. Profile 粒度的配置spring-cloud-starter-alicloud-acm 在加载配置的时候 , 首先会加载 DataId 为{spring.application.name}.{file-extension}的配置 , 当 spring.profiles.active 中配置有内容时 , 还会依次去加载 spring.profile 对应的内容 ,DataId 的格式为{spring.application.name}-{profile}.{file-extension}的配置 , 且后者的优先级高于前者 。
spring.profiles.active 属于配置的元数据 , 所以也必须配置在 bootstrap.properties 或 bootstrap.yaml 中 。 比如可以在 bootstrap.properties 中增加如下内容 。
- 页面|如何简单、快速制作流程图?上班族的画图技巧get
- 培育|跨境电商人才如何培育,长沙有“谱”了
- 抖音小店|抖音进军电商,短视频的商业模式与变现,创业者该如何抓住机遇?
- 计费|5G是如何计费的?
- 车轮旋转|牵引力控制系统是如何工作的?它有什么作用?
- 视频|短视频如何在前3秒吸引用户眼球?
- Vlog|中国Vlog|中国基建如何升级?看5G+智慧工地
- 涡轮|看法米特涡轮流量计如何让你得心应手
- 手机|OPPO手机该如何截屏?四种最简单的方法已汇总!
- 和谐|人民日报海外版今日聚焦云南西双版纳 看科技如何助力人象和谐