SpringBoot3.x集成nacos并實(shí)現(xiàn)多環(huán)境配置的操作步驟
一、springboot版本
springboot3.0.x 和springboot3.1.x 可直接使用nacos-config-spring-boot-starter 包。

springboot >=3.2.x 需要使用spring-cloud-starter-alibaba-nacos-config包,因?yàn)槌R?guī)包在我發(fā)布該文時(shí)nacos官方還沒(méi)更新,已更新的版本只支持到3.1.x,cloud的包2024年4月份進(jìn)行了更新,可以支持3.2.x及以上版本。

二、nacos安裝部署
nacos1.x安裝、操作請(qǐng)查看官方文檔Nacos 快速開(kāi)始 | Nacos
使用nacos1.x版本的用戶(hù)請(qǐng)忽略【安裝部署】后面的內(nèi)容,直接跳到 二、springboot3.x集成nacos部分。
springboot3.x集成Nacos2.x升級(jí)和安裝、操作請(qǐng)查看官方文檔Nacos 2.0 升級(jí)文檔 | Nacos,權(quán)限配置請(qǐng)參照Authorization | Nacos
nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2個(gè)端口。新增端口是在配置的主端口(server.port)基礎(chǔ)上,進(jìn)行一定偏移量自動(dòng)生成。
| 端口 | 與主端口的偏移量 | 描述 |
|---|---|---|
| 9848 | 1000 | 客戶(hù)端gRPC請(qǐng)求服務(wù)端端口,用于客戶(hù)端向服務(wù)端發(fā)起連接和請(qǐng)求 |
| 9849 | 1001 | 服務(wù)端gRPC請(qǐng)求服務(wù)端端口,用于服務(wù)間同步等 |
| 7848 | -1000 | Jraft請(qǐng)求服務(wù)端端口,用于處理服務(wù)端間的Raft相關(guān)請(qǐng)求 |
如果存在防火墻或者nginx端口轉(zhuǎn)發(fā)問(wèn)題,需要進(jìn)行相應(yīng)的端口 暴露配置。如在nginx中,在已經(jīng)暴露8848(x)的基礎(chǔ)上,需要額外暴露9848(x+1000)。9849和7848端口為服務(wù)端之間的通信端口,請(qǐng)勿暴露到外部網(wǎng)絡(luò)環(huán)境和客戶(hù)端測(cè)。
三、springboot3.x集成nacos
1、添加依賴(lài)
nacos1.x版本用戶(hù),請(qǐng)?zhí)砑尤缦乱蕾?lài)
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.3</version>
</dependency>注意,springboot3.x集成該版本啟動(dòng)項(xiàng)目時(shí)能從nacos加載配置文件信息,但是通過(guò)@NacosValue注解取不到值, 需要把@NacosValue的地方替換為@Value注解,但是這樣的話就不能動(dòng)態(tài)刷新配置了,只能重啟項(xiàng)目生效,只能是權(quán)益之計(jì),想要徹底兼容的話就看nacos官方出不出兼容的nacos1.x版本的包了,不然只能升級(jí)到nacos2.x版本。
nacos2.x版本用戶(hù),如果你的springboot版本是3.0.x或者3.1.x版本,請(qǐng)?zhí)砑酉旅娴囊蕾?lài)
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.3.0-RC</version>
</dependency>nacos2.x版本用戶(hù),如果你的springboot版本是3.2.x及以上,請(qǐng)?zhí)砑觕loud的包
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2023.0.1.2</version>
</dependency>2、配置文件中添加nacos配置,以常規(guī)包為例,如果是cloud的包,同理參考后面cloud的配置即可。
(1)單個(gè)環(huán)境配置
nacos:
config:
#是否開(kāi)啟Nacos配置預(yù)加載
bootstrap:
enable: true
data-id: demo-boot-v3
type: yaml
group: DEFAULT_GROUP
auto-refresh: true
server-addr: 127.0.0.1:8848
namespace: 0f72f102-23c1-4176-869f-91f31c42a07e
bootstrap:
log:
enable: true
#如果開(kāi)啟認(rèn)證的話需要用戶(hù)名和密碼,未開(kāi)啟的話請(qǐng)注釋
username: nacos
password: nacos(2)多環(huán)境配置,以開(kāi)發(fā)環(huán)境dev和生產(chǎn)環(huán)境pro為例
spring:
profiles:
#指定要加載的配置
active: dev
nacos:
config:
#是否開(kāi)啟Nacos配置預(yù)加載
bootstrap:
enable: true
data-id: demo-boot-v3
type: yaml
group: DEFAULT_GROUP
auto-refresh: true
---
#開(kāi)發(fā)環(huán)境dev
spring:
config:
activate:
on-profile: dev
nacos:
config:
#nacos的地址,替換成測(cè)試環(huán)境的實(shí)際地址即可
server-addr: 127.0.0.1:8848
#命名空間,替換為測(cè)試環(huán)境的實(shí)際命名空間即可
namespace: 0f72f102-23c1-4176-869f-91f31c42a07e
bootstrap:
log:
enable: true
#如果開(kāi)啟認(rèn)證的話需要用戶(hù)名和密碼
username: nacos
password: nacos
---
#生產(chǎn)環(huán)境pro
spring:
config:
activate:
on-profile: pro
nacos:
config:
#nacos的地址,替換成線上的實(shí)際地址即可
server-addr: 127.0.0.1:8848
#命名空間,替換為線上的實(shí)際命名空間即可
namespace: 0f72f102-23c1-4176-869f-91f31c42a07e
bootstrap:
log:
enable: true
#如果開(kāi)啟認(rèn)證的話需要用戶(hù)名和密碼
username: nacos
password: nacos(3)spring cloud nacos配置參考
spring:
profiles:
active: local
config:
import:
#使用nacos配置 demo-boot-v3對(duì)應(yīng)上面的data-id
nacos:demo-boot-v3
cloud:
nacos:
config:
file-extension: yaml
group: DEFAULT_GROUP
refresh-enabled: true
---
# local
spring:
config:
activate:
on-profile: local
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: 8d582ff3-f890-4a67-b75c-e6c20a86534c
#如果開(kāi)啟認(rèn)證的話需要用戶(hù)名和密碼,未開(kāi)啟的話請(qǐng)注釋
username: nacos
password: nacos
---
# dev
spring:
config:
activate:
on-profile: dev
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: 8d582ff3-f890-4a67-b75c-e6c20a86534c
#如果開(kāi)啟認(rèn)證的話需要用戶(hù)名和密碼,未開(kāi)啟的話請(qǐng)注釋
username: nacos
password: nacos
---
# pro
spring:
config:
activate:
on-profile: pro
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: 8d582ff3-f890-4a67-b75c-e6c20a86534c
#如果開(kāi)啟認(rèn)證的話需要用戶(hù)名和密碼,未開(kāi)啟的話請(qǐng)注釋
username: nacos
password: nacos注意這里nacos:demo-boot-v3是一個(gè)整體值,中間的冒號(hào)后面沒(méi)有空格,他們的 key是:spring.config.import,demo-boot-v3換成你的data-id即可。
3、啟動(dòng)項(xiàng)目

以上就是SpringBoot3.x集成nacos并實(shí)現(xiàn)多環(huán)境配置的操作步驟的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot3.x nacos多環(huán)境配置的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
netty?pipeline中的inbound和outbound事件傳播分析
這篇文章主要為大家介紹了netty?pipeline中的inbound和outbound事件傳播分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Spring Boot中@RequestParam參數(shù)的5種情況說(shuō)明
這篇文章主要介紹了Spring Boot中@RequestParam參數(shù)的5種情況說(shuō)明,具有很好的參考價(jià)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
解決IDEA插件市場(chǎng)Plugins無(wú)法加載的問(wèn)題
這篇文章主要介紹了解決IDEA插件市場(chǎng)Plugins無(wú)法加載的問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
Java開(kāi)發(fā)SSM框架微信支付的實(shí)現(xiàn)
這篇文章主要介紹了Java開(kāi)發(fā)SSM框架微信支付的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
java面試try-with-resources問(wèn)題解答
這篇文章主要介紹了java面試try-with-resources問(wèn)題解答,?這個(gè)語(yǔ)句的作用是,確保該語(yǔ)句執(zhí)行之后,關(guān)閉每一個(gè)資源,也就是說(shuō)它確保了每個(gè)資源都在生命周期結(jié)束之后被關(guān)閉2022-07-07
Java中double數(shù)值保留兩位小數(shù)的4種實(shí)現(xiàn)方式舉例
在Java編程中,我們經(jīng)常遇到需要對(duì)double類(lèi)型的浮點(diǎn)數(shù)進(jìn)行精確截?cái)嗷蛩纳嵛迦氡A魞晌恍?shù)的需求,這篇文章主要給大家介紹了關(guān)于Java中double數(shù)值保留兩位小數(shù)的4種實(shí)現(xiàn)方式,需要的朋友可以參考下2024-07-07
Spring Security系列教程之會(huì)話管理處理會(huì)話過(guò)期問(wèn)題
會(huì)話過(guò)期,是指當(dāng)用戶(hù)登錄網(wǎng)站后,較長(zhǎng)一段時(shí)間沒(méi)有與服務(wù)器進(jìn)行交互,將會(huì)導(dǎo)致服務(wù)器上的用戶(hù)會(huì)話數(shù)據(jù)(即session)被銷(xiāo)毀。這篇文章主要介紹了Spring Security系列教程之會(huì)話管理處理會(huì)話過(guò)期問(wèn)題,需要的朋友可以參考下2021-10-10

