springboot 整合 nacos 配置實(shí)現(xiàn)多個(gè)環(huán)境不同配置
1、描述
一個(gè)項(xiàng)目一般會有中心配置文件,現(xiàn)在簡單上手主流有Apollo,nacos config ,從性能對比可知,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
- 啟動nacos 之前需要修改jar里面的數(shù)據(jù)連接和執(zhí)行SQL
修改application 數(shù)據(jù)庫連接:
在 nacos-server-1.1.4\nacos\target\nacos-server.jar ,用解壓工具打開,找到nacos-default.properties ,修改里面的數(shù)據(jù)庫連接就可以


將里面的SQL 執(zhí)行到部署的服務(wù)器上

如果是window 雙擊啟動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 平臺創(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: 用于測試的沒什么用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 #端口號
spring:
application:
name: com-member-service # nacos 平臺配置的名稱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)啟動服務(wù):會發(fā)現(xiàn)端口號是8099,而且輸入http://localhost:9087/member/api/abstract/nacos是 用于測試的沒什么用,說明基本成功

5、重點(diǎn):不同的springboot 讀取不同application
如果我們按以上的操作,只能讀取到一個(gè)nacos配置文件的,但是對于很多程序來說,有開發(fā)環(huán)境,測試環(huán)境,正式環(huán)境等等,這樣的話就不能操作了。但是我發(fā)現(xiàn)nacos 還有個(gè) 空間namespace 可以用,那么我們可不可以用namespace
來區(qū)別不同的配置呢?
(1)在nacos 平臺創(chuàng)建2個(gè)命名空間,test,dev

(2)在nacos 配置不同命名空間的值,在dev,test 分別創(chuàng)建 member ,里面的內(nèi)容對應(yīng)test.properties-version=testing_nacos_dev ,test.properties-version=testing_nacos_test

(4)在 springboot 的bootstrap.yml選擇對應(yīng)的啟動配置spring.cloud.nacos.config.namespace,分別選擇dev 和 test
server:
port: 9087 #端口號
spring:
application:
name: com-member-service # nacos 平臺配置的名稱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: true6、總結(jié)
通過以上學(xué)習(xí),可以簡單的用nacos 做配置中心。
到此這篇關(guān)于springboot 整合 nacos 配置實(shí)現(xiàn)多個(gè)環(huán)境不同配置的文章就介紹到這了,更多相關(guān)springboot 整合 nacos內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring的連接數(shù)據(jù)庫以及JDBC模板(實(shí)例講解)
下面小編就為大家?guī)硪黄猄pring的連接數(shù)據(jù)庫以及JDBC模板(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10
Mybatis?Interceptor線程安全引發(fā)的bug問題
這篇文章主要介紹了Mybatis?Interceptor線程安全引發(fā)的bug問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Spring+MongoDB實(shí)現(xiàn)登錄注冊功能
這篇文章主要為大家詳細(xì)介紹了Spring+MongoDB實(shí)現(xiàn)登錄注冊功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
淺談java中math類中三種取整函數(shù)的區(qū)別
下面小編就為大家?guī)硪黄獪\談java中math類中三種取整函數(shù)的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
基于Java實(shí)現(xiàn)PPT到PDF的高效轉(zhuǎn)換詳解
在日常開發(fā)中,經(jīng)常會遇到將PPT文檔批量或單文件轉(zhuǎn)換為PDF的需求,本文將詳細(xì)介紹其使用流程、核心代碼與常見問題解決方案,希望對大家有所幫助2025-11-11
Spring Security使用數(shù)據(jù)庫認(rèn)證及用戶密碼加密和解密功能
這篇文章主要介紹了Spring Security使用數(shù)據(jù)庫認(rèn)證及用戶密碼加密和解密,本文通過代碼與截圖的形式給大家介紹的非常詳細(xì),對大家的工作或?qū)W習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
基于Retrofit+Rxjava實(shí)現(xiàn)帶進(jìn)度顯示的下載文件
這篇文章主要為大家詳細(xì)介紹了基于Retrofit+Rxjava實(shí)現(xiàn)帶進(jìn)度顯示的下載文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05

