spring?boot項目中如何使用nacos作為配置中心
使用nacos作為配置中心
利用nacos作為配置中心,好處不言而喻,配置外置了,與程序解耦,并且nacos還提供了友好的管理界面。
spring boot的賣點之一,就是與之前的spring相比,所謂約定重于配置,配置文件大大簡化。
現(xiàn)在使用nacos這種外置配置中心,是更加向前了一步。
具體應用步驟:
1、pom.xml中引入nacos支持包
2、pom.xml中指向nacos
3、配置文件中使用nacos配置項
如此,即可使用nacos中的配置,修改啥的都很方便,根本不用遠程服務器。如果設置refresh選項,連程序都不用重啟,即時刷新。
下面是詳細介紹:
1、pom.xml中引入nacos支持包
<!--阿里巴巴 nacos 服務發(fā)現(xiàn)(這個可以去掉?)-->
<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
這里其實還沒有指向nacos,只是定義了一些屬性。
因為我們這個項目準確來說,是個spring cloud項目(spring cloud居于spring boot),里面包含多個子系統(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,不能使用名稱,默認為空-->
<config.namespace>gdhysthj</config.namespace>
<!--nacos用戶名-->
<config.username>nacos</config.username>
<!--nacos密碼-->
<config.password>nacos</config.password>
。。。
</properties>
</profile>
3、配置文件中使用nacos配置項
由于我這個spring boot項目使用了spring cloud,它有一個bootstrap.yml(bootstrap,綁鞋帶?引申為步步為營、引導程序之意),對nacos的應用即在于此。
我猜spring boot項目,直接在application.properties中定義也可以的。
spring:
。。。
cloud:
。。。
nacos:
config:
namespace: ${config.namespace} #這些就是前面定義的公共屬性。如果是spring boot,直接寫值應該也可以
server-addr: ${config.server-addr}
username: ${config.username}
password: ${config.password}
shared-configs[0]:
data-id: common.properties
refresh: true #自動刷新
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}
。。。

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

