前面了解了Nacos作為服務(wù)注冊中心,現(xiàn)在了解下驻呐,Nacos作為配置管理中心
以前更改配置后题暖,都需要手動重啟工程才行,現(xiàn)在只需要搭上 Nacos 梆暮,你就可以在Nacos 上保存后服协,自動更新工程的配置項(xiàng)了
搭建工程(基于上次服務(wù)注冊的工程)
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
<!--nacos依賴-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
<!--nacos 配置中心-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
bootstrap.yml
網(wǎng)上找的解釋詞:
創(chuàng)建配置文件名為bootstrap.yml,一定是bootstrap.xxx
原因:
Nacos同springcloud-config一樣,在項(xiàng)目初始化時啦粹,要保證先從配置中心進(jìn)行配置拉取偿荷,拉取配置之后,才能保證項(xiàng)目的正常啟動唠椭。springboot中配置文件的加載是存在優(yōu)先級順序的
bootstrap優(yōu)先級高于application
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
prefix: nacos-config
profiles:
active:
application.yml
server:
port: 8860
spring:
application:
name: nacos-config
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
nacos:
cofing:
name : nacosconfig
function: study
創(chuàng)建Controller
需要@RefreshScope進(jìn)行標(biāo)記跳纳,表示 當(dāng)前類下的配置支持動態(tài)更新
@RestController
@RefreshScope
public class ConfigController {
@Value("${nacos.cofing.name}")
private String name;
@Value("${nacos.cofing.function}")
private String book;
@GetMapping("/name")
public String getName() {
return name;
}
@GetMapping("/function")
public String getFunction() {
return book;
}
}
在Nacos上進(jìn)行配置
Data ID的規(guī)則:
${prefix}-${spring.profile.active}.${file-extension}
-- `prefix` 默認(rèn)為 `spring.application.name` 的值,也可以通過配置項(xiàng) `spring.cloud.nacos.config.prefix`來配置
-- `spring.profile.active` 即為當(dāng)前環(huán)境對應(yīng)的 profile泪蔫,詳情可以參考 [Spring Boot文檔](`https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html#boot-features-profiles`)棒旗。 **注意:當(dāng) `spring.profile.active` 為空時喘批,對應(yīng)的連接符 `-` 也將不存在撩荣,dataId 的拼接格式變成 `${prefix}.${file-extension}`
-- `file-exetension` 為配置內(nèi)容的數(shù)據(jù)格式,可以通過配置項(xiàng) `spring.cloud.nacos.config.file-extension` 來配置饶深。目前只支持 `properties` 和 `yaml` 類型
我這里命名為: nacos-config.yaml
這里可以解釋 Data ID的規(guī)則里 prefix 的 釋義
dataId是由 dataIdPrefix + "." + fileExtension
構(gòu)造而成
通過跟蹤代碼餐曹,我們可以發(fā)現(xiàn)
Nacos 是通過 dataId
也就是 dataIdPrefix + "." + fileExtension
來獲取的Nacos上的配置信息
編寫Nacos上的配置信息
編寫好后點(diǎn)發(fā)布就ok了
啟動工程
訪問:http://localhost:8860/function
發(fā)現(xiàn)已經(jīng)是Nacos上的配置信息了