構(gòu)建配置中心
新建命名空間
登錄 Nacos 面板,依次點擊左側(cè)菜單欄【命名空間→新建命名空間】、填寫命名空間名和描述信息,點擊【確定】:
新建配置文件
依次點擊左側(cè)菜單欄【配置管理→配置列表】、切換到指定命名空間【此處為 shop】、點擊右側(cè)【+】號:
添加配置
填寫【Data ID】要求組內(nèi)唯一,【Group】組名,【配置格式】以及【配置內(nèi)容】,點擊【發(fā)布】:
注:添加【Data ID】時要添加文件類型
新建項目
創(chuàng)建一個SpringBoot項目:
添加【Nacos Configuration】依賴:
<!--nacos 配置中心依賴-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
修改配置文件
將配置文件【application.properties】重命名為【bootstrap.yml】,添加以下內(nèi)容:
spring:
application:
name: user-service
profiles:
active: dev # 當(dāng)前環(huán)境
cloud:
nacos:
#Nacos 配置中心
config:
server-addr: localhost:8848 # 配置中心地址
username: nacos # 賬號
password: nacos # 密碼
namespace: 6c3fb5a3-5f6e-485e-8b96-8aaa47baa217 # 命名空間
group: USER_GROUP # 組名
prefix: user-service-config # 讀取的目標(biāo)配置文件 DataID,默認{spring.application.name}
file-extension: yml
注:
需要配置
spring.application.name
,是因為它是構(gòu)成 Nacos 配置管理dataId
字段的一部分。在 Nacos Spring Cloud 中,
dataId
的完整格式如下:${prefix}-${spring.profiles.active}.${file-extension}
prefix
默認為spring.application.name
的值,也可以通過配置項spring.cloud.nacos.config.prefix
來配置。spring.profiles.active
即為當(dāng)前環(huán)境對應(yīng)的 profile,詳情可以參考 Spring Boot文檔。 注意:當(dāng)spring.profiles.active
為空時,對應(yīng)的連接符-
也將不存在,dataId 的拼接格式變成${prefix}.${file-extension}
file-exetension
為配置內(nèi)容的數(shù)據(jù)格式,可以通過配置項spring.cloud.nacos.config.file-extension
來配置。目前只支持properties
和yaml
類型。
啟動項目,查看控制臺打印,可以看到項目以【USER_GROUP】分組下的【user-service-config-dev.yml】配置文件啟動:
刷新
通過 Spring Cloud 原生注解 @RefreshScope
實現(xiàn)配置自動更新:
@RefreshScope
@RestController
public class UserController {
@Value("${user.name}")
private String name;
@GetMapping("/userInfo")
public String getUserId(){
return "name:"+name;
}
}
回滾歷史版本
依次點擊【更多→歷史版本】:
點擊對應(yīng)的【回滾】即可:
讀取不同分組的配置文件
創(chuàng)建【DEFAULT_GROUP】分組下的【mybatis-plus-config.yml】配置文件:
創(chuàng)建【DEFAULT_GROUP】分組下的【mysql-config.yml】配置文件:
添加依賴:
<!--mybatis-plus 依賴-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<!--mysql 依賴-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--druid 依賴-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
編寫配置文件,讀取三個不同分組的配置文件:
spring:
application:
name: user-service
cloud:
nacos:
#Nacos 配置中心
config:
server-addr: localhost:8848 # 配置中心地址
username: nacos # 賬號
password: nacos # 密碼
namespace: 6c3fb5a3-5f6e-485e-8b96-8aaa47baa217 # 多配置文件需要在同一命名空間
extension-configs: # 擴展的配置文件【List 集合】
- dataId: user-service-config.yml # 讀取的目標(biāo)配置文件 data id
group: USER_GROUP # 組名,默認 DEFAULT_GROUP
refresh: true # 是否刷新
- dataId: mybatis-plus-config.yml
refresh: true
- dataId: mysql-config.yml
refresh: true
file-extension: yml
啟動項目,查看控制臺打印,項目成功加載配置文件并成功啟動:文章來源:http://www.zghlxwxcb.cn/news/detail-475784.html
Located property source: [BootstrapPropertySource {name='bootstrapProperties-user-service.properties,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-user-service,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-mysql-config.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-mybatis-plus-config.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-user-service-config.yml,USER_GROUP'}]
讀取共用配置文件
只需修改上步的配置文件即可,項目啟動時會讀取【user-service-config.yml】以及和其他服務(wù)共享的配置文件:【mybatis-plus-config.yml,mysql-config.yml】:文章來源地址http://www.zghlxwxcb.cn/news/detail-475784.html
spring:
application:
name: user-service
cloud:
nacos:
#Nacos 配置中心
config:
server-addr: localhost:8848 # 配置中心地址
username: nacos # 賬號
password: nacos # 密碼
namespace: 6c3fb5a3-5f6e-485e-8b96-8aaa47baa217 # 多配置文件需要在同一命名空間
prefix: user-service-config # 讀取的目標(biāo)配置文件 data id
group: USER_GROUP
file-extension: yml
shared-configs: # 共享的配置文件【List 集合】
- dataId: mybatis-plus-config.yml # 讀取的目標(biāo)配置文件 data id
refresh: true
- dataId: mysql-config.yml
refresh: true
到了這里,關(guān)于Spring Cloud Alibaba Nacos 構(gòu)建配置中心的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!