本文說明如何使用 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 的配置自動更新功能正常。