SpringBoot集成Nacos全過程
簡介
Nacos 是阿里巴巴的新開源項目,其核心定位是 “一個更易于幫助構(gòu)建云原生應(yīng)用的集注冊中心與配置中心于一體的管理平臺”,又是我們口中所稱的配置和注冊中心。
上文說到如何安裝和啟動Nacos,那么現(xiàn)在我們就淺談下Nacos的使用方法。
依賴
Nacos作為阿里的開源項目,他的依賴也必然帶上了阿里,這一點注意別導(dǎo)錯依賴了。
我這里使用的是2.2.1RELEASE,在這里值得一提的是,最起碼nacos的大版本要和SpringBoot保持一致,注冊和配置中心的依賴保持一致?。。?!(如果后面出問題了,記得看一下依賴)
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>配置文件
在這里要說一下,配置文件在這里使用的是bootstrap.yml,為系統(tǒng)的配置文件,其優(yōu)先級大于application.yml。
在這里我們也可以使用bootstrap.properties文件,其效果和yml文件相同。
spring:
application:
name: xiaoguai #為服務(wù)名
cloud:
nacos:
username: nacos
password: nacos
discovery:
namespace: monitor
group: monitor
server-addr: localhost:8848
config:
file-extension: yaml #后綴名,只支持 properties 和 yaml 類型
prefix: xiaoguai #文件名,如果沒有配置則默認為 ${spring.appliction.name}
namespace: monitor
auto-refresh: true
enable-remote-sync-config: true #啟用遠程同步配置,
timeout: 3000
group: DEFAULT_GROUP #配置組
refresh-enabled: true
server-addr: localhost:8848下圖為Nacos的對應(yīng)關(guān)系:

在加上阿里的依賴后,啟動類上還要添加注解@EnableDiscoveryClient開啟配置。
mport org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* @Author: xiaoguai
* @Date: 2022-09/06/14:11
*/
@SpringBootApplication
@EnableDiscoveryClient
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}啟動啟動類后,訪問nacos的地址https:localhost:8848/nacos,打開服務(wù)列表,為你的服務(wù),服務(wù)名對應(yīng)
spring.application.name:xiaoguai

代碼
要實現(xiàn)配置文件的動態(tài)刷新,還需要一個注解@RefreshScope
在需要動態(tài)刷新的controller上添加此注解
注意:@Value注解為org.springframework.beans.factory.annotation.Value包下的,不要導(dǎo)成Lombok下的了?。。?/p>
@RestController
@RefreshScope
public class HelloController {
@Autowired
private MyConfiguration myConfiguration;
@Value("${log.level}")
private String level;
@GetMapping("/info")
public String getConfigInfo() {
String all = myConfiguration.getUsername()+"<br>"+myConfiguration.getPassword()+level;
System.out.println(all);
return all;
}
}測試
在啟動之后訪問以上內(nèi)容
控制臺和網(wǎng)頁分別輸出為:


現(xiàn)在我們在不重啟應(yīng)用的情況下,修改Nacos的配置文件。

在上次的網(wǎng)頁進行刷新操作,分別觀察網(wǎng)頁和控制臺的輸出:


這樣就完成了Nacos的動態(tài)配置和動態(tài)刷新了?。?/p>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java的ThreadPoolExecutor業(yè)務(wù)線程池詳細解析
這篇文章主要介紹了Java線程池ThreadPoolExecutor詳細解析,任務(wù)剛開始進來的時候就創(chuàng)建核心線程,核心線程滿了會把任務(wù)放到阻塞隊列,阻塞隊列滿了之后才會創(chuàng)建空閑線程,達到最大線程數(shù)之后,再有任務(wù)進來,就只能執(zhí)行拒絕策略了,需要的朋友可以參考下2024-01-01
Java中Maven項目導(dǎo)出jar包配置的示例代碼
這篇文章主要介紹了Java中Maven項目導(dǎo)出jar包配置的示例代碼,需要的朋友可以參考下2018-11-11
ThreadLocal使用案例_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了ThreadLocal使用案例分析,需要的朋友可以參考下2017-08-08
Java用三元運算符判斷奇數(shù)和偶數(shù)的簡單實現(xiàn)
這篇文章主要介紹了Java用三元運算符判斷奇數(shù)和偶數(shù)的簡單實現(xiàn),需要的朋友可以參考下2014-02-02
java8升級到j(luò)ava17的兼容性分析與遷移指南
這篇文章主要為大家詳細介紹了從?Java?8?升級到?Java?17?的詳細分析和遷移步驟,包括代碼修改建議,依賴更新和配置調(diào)整,有需要的小伙伴可以參考一下2025-04-04
SpringCloud?中防止繞過網(wǎng)關(guān)請求直接訪問后端服務(wù)的解決方法
這篇文章主要介紹了SpringCloud中如何防止繞過網(wǎng)關(guān)請求直接訪問后端服務(wù),本文給大家分享三種解決方案,需要的朋友可以參考下2023-06-06

