springboot集成nacos無法動態(tài)獲取nacos配置的問題
版本說明
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.6.RELEASE</version> </dependency> <!--從nacos讀取配置引入--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.6.RELEASE</version> </dependency> <!--備注無需引入 spring-cloud-starter-alibaba-nacos-config 2.2.6 引入的 naocs-client是1.4.2對應(yīng)你安裝的nacos客戶端版本 我使用的nacos2.3客戶端 使用1.4.2的clentpom暫時(shí)沒發(fā)現(xiàn)問題 <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>1.4.2</version> <scope>compile</scope> </dependency> -->
官方對應(yīng)版本飛機(jī):官方對應(yīng)版本
1、創(chuàng)建bootstrap.properties
##springboot加載順序 bootstrap.properties -> bootstrap.yml,由于bootstrap.yml中配置了多個(gè)環(huán)境的nacos配置,為了清晰 properties 控制環(huán)境 #注冊到nacos的服務(wù)名稱 spring.application.name=notice #項(xiàng)目環(huán)境 spring.profiles.active=dev
2、項(xiàng)目創(chuàng)建 bootstrap.yml
--- #當(dāng)spring.profiles.active=test 時(shí)讀取此配置 spring: profiles: test cloud: nacos: #nacos ip+端口 server-addr: 127.0.0.1:8848 discovery: server-addr: ${spring.cloud.nacos.server-addr} # nacos創(chuàng)建的命名空間id namespace: 57b60655-ab37-48dd-9ab7-853c28aa8ab4 #配置分組 group: ${spring.profiles.active} #拉取配置-指定注冊中心地址 config: server-addr: ${spring.cloud.nacos.server-addr} namespace: ${spring.cloud.nacos.discovery.namespace} group: ${spring.profiles.active} # 配置文件類型 文件名稱規(guī)則 spring.application.name+spring.profiles.active+file-extension file-extension: yml --- #當(dāng)spring.profiles.active=dev 時(shí)讀取此配置 spring: profiles: dev cloud: nacos: server-addr: 127.0.0.1:8848 discovery: server-addr: ${spring.cloud.nacos.server-addr} namespace: de50d235-29d1-4d17-9790-66ad89aa64b5 group: ${spring.profiles.active} #拉取配置-指定注冊中心地址 config: server-addr: ${spring.cloud.nacos.server-addr} namespace: ${spring.cloud.nacos.discovery.namespace} group: ${spring.profiles.active} file-extension: yml --- #當(dāng)spring.profiles.active=uat 時(shí)讀取此配置 spring: profiles: uat cloud: nacos: server-addr: 127.0.0.1:8848 discovery: server-addr: ${spring.cloud.nacos.server-addr} namespace: 42f254dc-9090-4e2b-80e2-bc1d6b62b92c group: ${spring.profiles.active} #拉取配置-指定注冊中心地址 config: server-addr: ${spring.cloud.nacos.server-addr} namespace: ${spring.cloud.nacos.discovery.namespace} group: ${spring.profiles.active} file-extension: yml --- #當(dāng)spring.profiles.active=prod 時(shí)讀取此配置 spring: profiles: prod cloud: nacos: server-addr: 127.0.0.1:8848 discovery: server-addr: ${spring.cloud.nacos.server-addr} namespace: 346ccff5-04a6-4937-b531-aa6a8ca440f4 group: ${spring.profiles.active} #拉取配置-指定注冊中心地址 config: server-addr: ${spring.cloud.nacos.server-addr} namespace: ${spring.cloud.nacos.discovery.namespace} group: ${spring.profiles.active} file-extension: yml
3、創(chuàng)建application-dev.yml
#測試動態(tài)刷新 user: userName: local-notice
注意點(diǎn):
一定要在bootstrap.yml 配置nacos的registry和config 經(jīng)過測試在bootstrap.yml和bootstrap.properties配置文件中 nacos才會被讀取到(我在被的博客里看到在application.yml中配置的也可以,具體原因不辭清楚......)
4、在項(xiàng)目中創(chuàng)建controller測試動態(tài)刷新
@RestController @RequestMapping("/locationTest") @RefreshScope//刷新配置 public class LocationTest { @Value("${user.userName}") private String userName; @RequestMapping("/testNoticeConfig") @UnLogin public String testNoticeConfig(){ return userName; } }
一定要加注解@RefreshScope//刷新配置
5、啟動項(xiàng)目
注意:dataId
6、nacos創(chuàng)建配置
情況1:
- 在bootstrap.yml 中配置了 file-extension: yml
- 名稱可以是 notice.yml 也可以是notice-dev.yml
情況2:
- 在bootstrap.yml 中配置了 file-extension:properties
- 名稱可以是 notice.properties 也可以是notice-dev.properties
內(nèi)容:
7、測試
ocalhost:8080/locationTest/testNoticeConfig
測試訪問返回的就是notice-dev
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Spring Security中獲取當(dāng)前登錄用戶的詳細(xì)信息的幾種方法
本文主要介紹了詳解Spring Security中獲取當(dāng)前登錄用戶的詳細(xì)信息的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Mybatis-plus自動填充不生效或自動填充數(shù)據(jù)為null原因及解決方案
本文主要介紹了Mybatis-plus自動填充不生效或自動填充數(shù)據(jù)為null原因及解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05詳解使用Spring AOP和自定義注解進(jìn)行參數(shù)檢查
本篇文章主要介紹了詳解使用Spring AOP和自定義注解進(jìn)行參數(shù)檢查,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04Hibernate迫切連接和普通連接的區(qū)別實(shí)例詳解
這篇文章主要介紹了Hibernate迫切連接和普通連接的區(qū)別實(shí)例詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12Java二維數(shù)組與動態(tài)數(shù)組ArrayList類詳解
這篇文章主要給大家介紹了關(guān)于Java二維數(shù)組與動態(tài)數(shù)組ArrayList類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09圖文詳解如何將java編寫的程序轉(zhuǎn)為exe文件
我們寫的程序,要讓小伙伴打開即用,可以將java程序生成可執(zhí)行文件,下面這篇文章主要給大家介紹了關(guān)于一步步教你如何將java編寫的程序轉(zhuǎn)為exe文件的相關(guān)資料,需要的朋友可以參考下2023-01-01