官方教程:https://nacos.io/zh-cn/docs/quick-start-spring-boot.html
Linux使用docker部署nacos: https://www.cnblogs.com/pxblog/p/15218599.html
默認賬號密碼都是:nacos
pom.xml
<!-- https://mvnrepository.com/artifact/com.alibaba.boot/nacos-config-spring-boot-starter --> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.2.7</version> </dependency>
在 application.properties
中配置 Nacos server 的地址:
nacos.config.server-addr=127.0.0.1:8848
如果命名空間不是public要單獨設置
nacos.config.namespace=dev
啟動器類
這里的dataId要和配置中心的dataId對應
測試控制器
/** * 通過NacosValue讀取配置, * autoRefreshed 表示是否自動更新 */ @NacosValue(value = "${http_url}", autoRefreshed = true) private String httpUrl; @GetMapping(value = "/get") @ResponseBody public String get() { return httpUrl; }
下面是第二種寫法(這種寫法不支持實時更新配置)
下面這種要放在boostrap.yml中
SpringBoot項目bootstrap.yml配置文件不加載:https://www.cnblogs.com/pxblog/p/15036197.html
pom依賴 這個我把注冊中心的依賴也加了
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.1.4.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.1.4.RELEASE</version> </dependency>
配置方式
spring:
application:
name: demo-service #項目名
profiles:
active: dev
cloud:
nacos:
# 配置中心
config:
# 命名空間id(此處不用public,因public初始化的空間, id為空)
namespace: ${spring.profiles.active}
# nacos的ip地址和端口
server-addr: ${NACOS-HOST:127.0.0.1}:${NACOS-PORT:8848}
#nacos登錄用戶名
username: nacos
#nacos登錄密碼
password: nacos
# 這個就表示 在我們nacos命名空間id為 dev中 有一個data-id 為 demo-service.yml 的配置文件 讀取這個里面的配置
file-extension: yml
config-retry-time: 300000
# 共享配置, 可以把公共配置放在同個命名空間下,然后創建一個 common.yml 文件 ,里面可以放共用的配置
shared-configs: common.yml
# 發布到注冊中心 (如果沒有使用可以不配)
discovery:
# 命名空間id(此處不用public,因public初始化的空間, id為空)
namespace: ${spring.profiles.active}
# nacos的ip地址和端口
server-addr: ${NACOS-HOST:127.0.0.1}:${NACOS-PORT:8848}
如果要覆蓋共享配置里面的內容 只需要在主配置文件(application.yml)中在寫一遍配置即可 ,主配置優先級高