本文说明如何使用 Nacos Spring SDK 管理 ACM 配置。
前提条件
操作步骤
-
在 Maven 项目的 pom.xml 文件中增加以下配置来获取 Nacos Spring SDK。
<dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-spring-context</artifactId> <version>${latest.version}</version> </dependency>
-
使用 @EnableNacosConfig 注解启用 Nacos Spring 的配置管理服务。
说明 请将代码中的 ${endpoint}、${namespace}、${accessKey}、${secretKey} 分别替换为 ACM 控制台上命名空间详情对话框内的 End Point、命名空间 ID、AccessKey、SecretKey。出于安全考虑,建议使用 RAM 用户的 AccessKey 和 SecretKey。@Configuration @EnableNacosConfig(globalProperties = @NacosProperties( endpoint = "${endpoint}", namespace = "${namespace}", accessKey = "${accessKey}", secretKey = "${secretKey}" ))
-
使用 @NacosPropertySource 注解加载配置源,并开启自动更新。
说明 实际开发时,请将com.alibaba.nacos.example.properties
替换成真实的 ACM 配置 Data ID。@NacosPropertySource(dataId = "com.alibaba.nacos.example.properties", autoRefreshed = true) public class NacosConfiguration { }
-
使用
@NacosValue
注解设置属性值。@Controller @RequestMapping("config") public class ConfigController { @NacosInjected private ConfigService configService; @NacosValue(value = "${connectTimeoutInMills:5000}", autoRefreshed = true) private int connectTimeoutInMills; @RequestMapping(value = "/get", method = GET) @ResponseBody public int get() { return connectTimeoutInMills; } }
结果验证
在本地启动项目,并运行以下命令:
curl localhost:8080/config/get
若返回以下信息,则说明 SDK 可正常使用。
3000
在 ACM 控制台将示例配置
com.alibaba.nacos.example.properties
更改为以下内容并发布。connectTimeoutInMills=6000
若 Console 打印出更新的配置内容 ,则说明 SDK 的配置自动更新功能正常。