本文说明如何使用 Nacos Spring Boot SDK 管理 ACM 配置。
前提条件
操作步骤
-
在 Maven 项目的 pom.xml 文件中增加以下配置来获取 Starter。
<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>${latest.version}</version> </dependency>
说明 使用时请根据 Spring Boot 版本选择相应的 nacos-config-spring-boot-starter 版本:nacos-config-spring-boot-starter 版本 0.2.x.RELEASE 对应 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应 Spring Boot 1.x 版本。 -
在 application.properties 文件中配置连接信息。
说明 请将代码中的 ${endpoint}、${namespace}、${accessKey}、${secretKey} 分别替换为 ACM 控制台上命名空间详情对话框内的 End Point、命名空间 ID、AccessKey、SecretKey。出于安全考虑,建议使用 RAM 用户的 AccessKey 和 SecretKey。nacos.config.endpoint=${endpoint} nacos.config.namespace=${namespace} # 推荐使用 RAM 用户的 accessKey 和 secretKey nacos.config.access-key=${accessKey} nacos.config.secret-key=${secretKey}
-
使用 @NacosPropertySource 注解加载配置源,并开启自动更新。
说明 实际开发时,请将com.alibaba.nacos.example.properties
替换成真实的 ACM 配置 Data ID。如果 group 不是 DEFAULT_GROUP,需要在@NacosPropertySource
注解中进行指定。@SpringBootApplication @NacosPropertySource(dataId = "com.alibaba.nacos.example.properties", autoRefreshed = true) public class NacosConfigApplication { public static void main(String[] args) { SpringApplication.run(NacosConfigApplication.class, args); } }
-
使用
@NacosValue
注解设置属性值。@Controller @RequestMapping("config") public class ConfigController { @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 的配置自动更新功能正常。