springboot 整合 nacos 配置實(shí)現(xiàn)多個(gè)環(huán)境不同配置
1、描述
一個(gè)項(xiàng)目一般會(huì)有中心配置文件,現(xiàn)在簡(jiǎn)單上手主流有Apollo,nacos config ,從性能對(duì)比可知,nacos 相比于Apollo 更高效率,更好
2、Nacos服務(wù)端安裝
- 最新版本下載地址:
https://github.com/alibaba/nacos/releases
- 訪問:
http://127.0.0.1:8848/nacos
- 用戶名/密碼:nacos/nacos
- 由于git下載有點(diǎn)慢提供已經(jīng)打包好的下載文件:https://download.csdn.net/download/wcy18818429914/15679179
- 啟動(dòng)nacos 之前需要修改jar里面的數(shù)據(jù)連接和執(zhí)行SQL
修改application 數(shù)據(jù)庫(kù)連接:
在 nacos-server-1.1.4\nacos\target\nacos-server.jar ,用解壓工具打開,找到nacos-default.properties ,修改里面的數(shù)據(jù)庫(kù)連接就可以
將里面的SQL 執(zhí)行到部署的服務(wù)器上
如果是window 雙擊啟動(dòng)bin 里面的 startup.cmd
如果是linux 則進(jìn)入bin 執(zhí)行:sh startup.sh
輸入 http://localhost:8848/nacos/index.html , 輸入 用戶名/密碼:nacos/nacos ,有以下圖像就代表成功了
3、創(chuàng)建dataId 配置中心
其中Data ID 必需要跟代碼的dataId 保存一致,group 可以默認(rèn)就可以
在nacos 平臺(tái)創(chuàng)建一個(gè)YAML配置:
命名空間:dev-local
Data ID:com-member-service.yml
Group:DEFAULT_GROUP
配置內(nèi)容為:
server: servlet: context-path: /member/api custom: test: data: 用于測(cè)試的沒什么用
4、創(chuàng)建一個(gè)springboot 項(xiàng)目
項(xiàng)目使用的是bootstrap 進(jìn)行配置
(1)引入mevan 包:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>3.0.4</version> </dependency>
(2)創(chuàng)建bootstrap.yml 引入讀取配置中心
?server: port: 9087 #端口號(hào) spring: application: name: com-member-service # nacos 平臺(tái)配置的名稱Data ID cloud: nacos: config: enabled: true server-addr: legrand.nacos.com:8848 # nacos 地址端口 file-extension: yml # 指定文本后綴 namespace: dev-local # nacos 命名空間 group: DEFAULT_GROUP # nacos Group refresh-enabled: true
其中dataId 必需跟nacos 客戶創(chuàng)建的dataID 一致
(3)創(chuàng)建controller ,引入獲取nacos 的配置
package com.example.demo.controller; import com.example.demo.service.AbstractService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @project: demo * * * @className: AbstractController * * * @description: **/ @RestController @RequestMapping("/abstract") public class AbstractController { @Autowired private AbstractService abstractService; @RequestMapping("/test") public String test(){ return abstractService.test(); } @Value("${custom.test.data}") private String cloud_secret_key; @RequestMapping("/nacos") public String nacos(){ return cloud_secret_key; } }
(5)啟動(dòng)服務(wù):會(huì)發(fā)現(xiàn)端口號(hào)是8099,而且輸入http://localhost:9087/member/api/abstract/nacos是 用于測(cè)試的沒什么用,說明基本成功
5、重點(diǎn):不同的springboot 讀取不同application
如果我們按以上的操作,只能讀取到一個(gè)nacos配置文件的,但是對(duì)于很多程序來說,有開發(fā)環(huán)境,測(cè)試環(huán)境,正式環(huán)境等等,這樣的話就不能操作了。但是我發(fā)現(xiàn)nacos 還有個(gè) 空間namespace 可以用,那么我們可不可以用namespace
來區(qū)別不同的配置呢?
(1)在nacos 平臺(tái)創(chuàng)建2個(gè)命名空間,test,dev
(2)在nacos 配置不同命名空間的值,在dev,test 分別創(chuàng)建 member ,里面的內(nèi)容對(duì)應(yīng)test.properties-version=testing_nacos_dev ,test.properties-version=testing_nacos_test
(4)在 springboot 的bootstrap.yml選擇對(duì)應(yīng)的啟動(dòng)配置spring.cloud.nacos.config.namespace,分別選擇dev 和 test
server: port: 9087 #端口號(hào) spring: application: name: com-member-service # nacos 平臺(tái)配置的名稱Data ID cloud: nacos: config: enabled: true server-addr: legrand.nacos.com:8848 # nacos 地址端口 file-extension: yml # 指定文本后綴 namespace: dev-local # nacos 命名空間(修改這里) group: DEFAULT_GROUP # nacos Group refresh-enabled: true
6、總結(jié)
通過以上學(xué)習(xí),可以簡(jiǎn)單的用nacos 做配置中心。
到此這篇關(guān)于springboot 整合 nacos 配置實(shí)現(xiàn)多個(gè)環(huán)境不同配置的文章就介紹到這了,更多相關(guān)springboot 整合 nacos內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java利用ffmpeg實(shí)現(xiàn)視頻MP4轉(zhuǎn)m3u8
本文綜合了下網(wǎng)上教程,從ffmpeg工具轉(zhuǎn)碼,ffmpeg視頻播放,java語(yǔ)言操控ffmpeg轉(zhuǎn)碼,轉(zhuǎn)碼后視頻上傳阿里云oss,四個(gè)方面完整記錄下這個(gè)流程,需要的朋友可以參考下2024-02-02Java中的HashMap為什么會(huì)產(chǎn)生死循環(huán)
這篇文章主要介紹了Java中的HashMap為什么會(huì)產(chǎn)生死循環(huán),HashMap?死循環(huán)是一個(gè)比較常見、比較經(jīng)典的問題,下面文章我們就來徹底理解死循環(huán)的原因。需要的小伙伴可以參考一下2022-05-05IntelliJ IDEA安裝目錄和設(shè)置目錄的說明(IntelliJ IDEA快速入門)
這篇文章主要介紹了IntelliJ IDEA安裝目錄和設(shè)置目錄的說明(IntelliJ IDEA快速入門),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04Idea導(dǎo)入多個(gè)maven項(xiàng)目到同一目錄下的方法示例
這篇文章主要介紹了Idea導(dǎo)入多個(gè)maven項(xiàng)目到同一目錄下,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07jenkins配置詳細(xì)指南(附j(luò)dk多個(gè)版本配置)
Jenkins是一款CICD(持續(xù)集成與持續(xù)交付)工具,Jenkins可以幫你在寫完代碼后,一鍵完成開發(fā)過程中的一系列自動(dòng)化部署的工作,這篇文章主要給大家介紹了關(guān)于jenkins配置的相關(guān)資料,文中還附j(luò)dk多個(gè)版本配置指南,需要的朋友可以參考下2024-02-02淺談Java內(nèi)部類——靜態(tài)內(nèi)部類
這篇文章主要介紹了Java靜態(tài)內(nèi)部類的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java內(nèi)部類的相關(guān)知識(shí),感興趣的朋友可以了解下2020-08-08淺談java7增強(qiáng)的try語(yǔ)句關(guān)閉資源
下面小編就為大家?guī)硪黄獪\談java7增強(qiáng)的try語(yǔ)句關(guān)閉資源。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06