spring?boot項(xiàng)目中如何使用nacos作為配置中心
使用nacos作為配置中心
利用nacos作為配置中心,好處不言而喻,配置外置了,與程序解耦,并且nacos還提供了友好的管理界面。
spring boot的賣(mài)點(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,直接寫(xiě)值應(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)容寫(xiě)在一起,合成一個(gè)文件也是可以的。
不管是一個(gè)文件或多個(gè)文件,對(duì)于系統(tǒng)來(lái)說(shuō),最終都是一個(gè)配置的集合。
shared-configs[x]是nacos推薦的寫(xiě)法,原先是ext-config[x],現(xiàn)在已經(jīng)棄用了。
配置文件的書(shū)寫(xiě)順序不重要,一個(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í)寫(xiě)在application.propertis/application.yml中的配置并無(wú)不同,在系統(tǒng)中是同樣使用。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java高效打印一個(gè)二維數(shù)組的實(shí)例(不用遞歸,不用兩個(gè)for循環(huán))
下面小編就為大家?guī)?lái)一篇java高效打印一個(gè)二維數(shù)組的實(shí)例(不用遞歸,不用兩個(gè)for循環(huán))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03關(guān)于jdk9、jdk10、jdk11、jdk12、jdk13新特性說(shuō)明
這篇文章主要介紹了關(guān)于jdk9、jdk10、jdk11、jdk12、jdk13新特性說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05springboot HandlerIntercepter攔截器修改request body數(shù)據(jù)的操作
這篇文章主要介紹了springboot HandlerIntercepter攔截器修改request body數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2021-06-06Java中解密微信加密數(shù)據(jù)工具類(lèi)
最近小編一直在開(kāi)發(fā)微信公眾號(hào)、小程序項(xiàng)目,微信返回給我們的數(shù)據(jù)都是加密的,我們需要使用sessionkey配合解密,才能看到我們想要的數(shù)據(jù),基于代碼怎么實(shí)現(xiàn)呢,下面小編給大家?guī)?lái)了Java中解密微信加密數(shù)據(jù)工具類(lèi)的完整代碼,一起看看吧2021-06-06Java中的復(fù)合數(shù)據(jù)類(lèi)型
這篇文章主要介紹了Java中的復(fù)合數(shù)據(jù)類(lèi)型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10nacos服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)依賴配置詳解
這篇文章主要為大家介紹了nacos服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)依賴配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09MyBatis圖文并茂講解注解開(kāi)發(fā)一對(duì)一查詢
這篇文章主要介紹了SpringBoot中Mybatis注解一對(duì)一查詢的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07