前兩篇記錄了下載安裝nacos、使用nacos作爲註冊中心:
本篇記錄使用nacos作爲配置中心,並通過配置頁面修改配置進行動態刷新演示
一、項目介紹
繼續使用上一篇創建的項目nacos,創建新module cloud-config:
二、開發配置
1、添加依賴
pom.xml
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
主要包含:
- SpringCloud配置
- alibaba-nacos-config
這裏與註冊中心不同的是config,兩個可以單獨使用
2、添加配置
bootstrap.properties
spring.application.name=cloud-config
server.port=30400
spring.cloud.nacos.config.server-addr=192.168.1.125:8848
配置Nacos server 的地址和應用名
這裏配置文件必須使用bootstrap文件名,並且需要配置spring.application.name,具體原因見下面介紹 Nacos 配置管理 dataId部分
3、編寫接口
@RestController
@RequestMapping("user")
@RefreshScope
public class UserController {
@Value("${userName:123}")
private String userName;
@RequestMapping("/get")
public String get() {
return userName + " hello";
}
}
使用@Value註解讀取配置userName;
使用Spring Cloud原生註解 @RefreshScope 實現配置自動更新
4、驗證
啓動服務,並用postman訪問接口:
注:這裏因爲讀取的鍵爲userName,讀取的是電腦配置的用戶名,使用其他名字將會打印 123 hello
三、修改配置
打開nacos頁面配置列表,點“+”號:
新建配置
點擊頁面下方發佈按鈕,確認發佈後,看服務日誌:
再次訪問接口:
可以看到配置已經更新
四、配置分析
1、Data Id
Data Id 是nacos用來定定位配置內容的,完整格式爲:
${prefix}-${spring.profile.active}.${file-extension}
- prefix :默認爲 spring.application.name,(也可以通過配置項 spring.cloud.nacos.config.prefix來配置)
- spring.profile.active : 即爲當前環境對應的 profile,例如dev,當 spring.profile.active 爲空時,對應的連接符 - 也將不存在,dataId 的拼接格式變成:
${prefix}.${file-extension}
- file-exetension : 爲配置內容的數據格式,(可以通過配置項 spring.cloud.nacos.config.file-extension 來配置。目前只支持 properties 和 yaml 類型)
因此,本例配置spring.application.name爲cloud-config,配置文件格式爲properties,則Data Id 爲“cloud-config.properties”
2、Group
配合Data Id 一起定位配置內容,暫時不修改,使用默認即可DEFAULT_GROUP
五、更多操作
1、查看歷史版本
點擊配置管理->歷史版本,輸入Data Id,Group,點擊查詢,可以看到配置的歷史版本,並可以查看詳情,或者回滾: