本文说明如何使用 Nacos Spring Boot SDK 管理 ACM 配置。

前提条件

  • 登录 ACM控制台,并创建一个示例配置。

    • Data ID:com.alibaba.nacos.example.properties
    • Group:不填写,即使用默认的 DEFAULT_GROUP
    • 配置格式:Properties
    • 配置内容:connectTimeoutInMills=3000
  • (可选)下载样例工程

操作步骤

  1. 在 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 版本。
  2. application.properties 文件中配置连接信息。

    说明 请将代码中的 ${endpoint}${namespace}${accessKey}${secretKey} 分别替换为 ACM 控制台上命名空间详情对话框内的 End Point命名空间 IDAccessKeySecretKey。出于安全考虑,建议使用 RAM 用户的 AccessKey 和 SecretKey。
    nacos.config.endpoint=${endpoint}
    nacos.config.namespace=${namespace}
    # 推荐使用 RAM 用户的 accessKey 和 secretKey
    nacos.config.access-key=${accessKey}
    nacos.config.secret-key=${secretKey}
  3. 使用 @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);
        }
    }
  4. 使用 @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;
        }
    }

结果验证

  1. 在本地启动项目,并运行以下命令:

    curl localhost:8080/config/get

    若返回以下信息,则说明 SDK 可正常使用。

    3000
  2. 在 ACM 控制台将示例配置 com.alibaba.nacos.example.properties 更改为以下内容并发布。

    connectTimeoutInMills=6000

    若 Console 打印出更新的配置内容 ,则说明 SDK 的配置自动更新功能正常。

更多信息