spring?boot項(xiàng)目中如何使用nacos作為配置中心
使用nacos作為配置中心
利用nacos作為配置中心,好處不言而喻,配置外置了,與程序解耦,并且nacos還提供了友好的管理界面。
spring boot的賣點(diǎn)之一,就是與之前的spring相比,所謂約定重于配置,配置文件大大簡(jiǎn)化。
現(xiàn)在使用nacos這種外置配置中心,是更加向前了一步。
具體應(yīng)用步驟:
1、pom.xml中引入nacos支持包
2、pom.xml中指向nacos
3、配置文件中使用nacos配置項(xiàng)
如此,即可使用nacos中的配置,修改啥的都很方便,根本不用遠(yuǎn)程服務(wù)器。如果設(shè)置refresh選項(xiàng),連程序都不用重啟,即時(shí)刷新。
下面是詳細(xì)介紹:
1、pom.xml中引入nacos支持包
<!--阿里巴巴 nacos 服務(wù)發(fā)現(xiàn)(這個(gè)可以去掉?)-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--阿里巴巴 nacos 配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2、pom.xml中指向nacos
這里其實(shí)還沒(méi)有指向nacos,只是定義了一些屬性。
因?yàn)槲覀冞@個(gè)項(xiàng)目準(zhǔn)確來(lái)說(shuō),是個(gè)spring cloud項(xiàng)目(spring cloud居于spring boot),里面包含多個(gè)子系統(tǒng),因此在最外層的pom.xml定義了公共屬性,其中包含nacos。
如果只是spring boot,那么可以省去這一步。
<profile>
。。。
<properties>
。。。
<!--Nacos配置中心地址-->
<config.server-addr>192.168.10.248:8848</config.server-addr>
<!--Nacos配置中心命名空間,用于支持多環(huán)境.這里必須使用ID,不能使用名稱,默認(rèn)為空-->
<config.namespace>gdhysthj</config.namespace>
<!--nacos用戶名-->
<config.username>nacos</config.username>
<!--nacos密碼-->
<config.password>nacos</config.password>
。。。
</properties>
</profile>
3、配置文件中使用nacos配置項(xiàng)
由于我這個(gè)spring boot項(xiàng)目使用了spring cloud,它有一個(gè)bootstrap.yml(bootstrap,綁鞋帶?引申為步步為營(yíng)、引導(dǎo)程序之意),對(duì)nacos的應(yīng)用即在于此。
我猜spring boot項(xiàng)目,直接在application.properties中定義也可以的。
spring:
。。。
cloud:
。。。
nacos:
config:
namespace: ${config.namespace} #這些就是前面定義的公共屬性。如果是spring boot,直接寫值應(yīng)該也可以
server-addr: ${config.server-addr}
username: ${config.username}
password: ${config.password}
shared-configs[0]:
data-id: common.properties
refresh: true #自動(dòng)刷新
shared-configs[1]:
data-id: db_oracle.properties
group: YJZH_GROUP
refresh: true
shared-configs[2]:
data-id: redis.properties
refresh: true
shared-configs[3]:
data-id: rabbitmq.properties
refresh: true
shared-configs[4]:
data-id: minio.properties
refresh: true
discovery:
namespace: ${config.namespace}
server-addr: ${discovery.server-addr}
username: ${config.username}
password: ${config.password}
。。。

由上圖可知,指定的命名空間下,有好幾個(gè)配置文件,然后它們以數(shù)組的形式,在spring cloud的bootstrap.yml文件中被指定:shared-configs[0]、shared-configs[1]、。。。
其實(shí)將這些分散的配置文件的內(nèi)容寫在一起,合成一個(gè)文件也是可以的。
不管是一個(gè)文件或多個(gè)文件,對(duì)于系統(tǒng)來(lái)說(shuō),最終都是一個(gè)配置的集合。
shared-configs[x]是nacos推薦的寫法,原先是ext-config[x],現(xiàn)在已經(jīng)棄用了。
配置文件的書寫順序不重要,一個(gè)配置文件,比如db.properties,你放在shared-configs[0]或者shared-configs[1]都沒(méi)關(guān)系。
shared-configs[1]: data-id: db_oracle.properties group: YJZH_GROUP #如果同一個(gè)命名空間下,配置文件名稱相同咋辦?用不同分組名稱 refresh: true #是否自動(dòng)刷新。true的hua,更改nacos配置,在應(yīng)用這里會(huì)立即生效
總結(jié)
nacos中的配置,和我們平時(shí)寫在application.propertis/application.yml中的配置并無(wú)不同,在系統(tǒng)中是同樣使用。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
ImportBeanDefinitionRegistrar手動(dòng)控制BeanDefinition創(chuàng)建注冊(cè)詳解
這篇文章主要為大家介紹了ImportBeanDefinitionRegistrar手動(dòng)控制BeanDefinition創(chuàng)建注冊(cè)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
SpringBoot使用Spring Test進(jìn)行集成測(cè)試的流程步驟
Spring Test 是 Spring Framework 提供的一個(gè)測(cè)試框架,它可以幫助我們進(jìn)行集成測(cè)試,在本文中,我們將介紹如何使用 Spring Test 進(jìn)行集成測(cè)試,需要的朋友可以參考下2023-06-06
java保證一個(gè)方法只能執(zhí)行一次的問(wèn)題
這篇文章主要介紹了java保證一個(gè)方法只能執(zhí)行一次的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Spring中的ApplicationContext與BeanFactory詳解
這篇文章主要介紹了Spring中的ApplicationContext與BeanFactory詳解,Spring的IoC容器就是一個(gè)實(shí)現(xiàn)了BeanFactory接口的可實(shí)例化類,事實(shí)上, Spring提供了兩種不同的容器,一種是最基本的BeanFactory,另一種是擴(kuò)展的ApplicationContext,需要的朋友可以參考下2024-01-01
Redisson RedLock紅鎖加鎖實(shí)現(xiàn)過(guò)程及原理
本文主要介紹了Redis中Redisson紅鎖(Redlock)使用原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02

