SpringBoot集成Nacos全過(guò)程
簡(jiǎn)介
Nacos 是阿里巴巴的新開(kāi)源項(xiàng)目,其核心定位是 “一個(gè)更易于幫助構(gòu)建云原生應(yīng)用的集注冊(cè)中心與配置中心于一體的管理平臺(tái)”,又是我們口中所稱的配置和注冊(cè)中心。
上文說(shuō)到如何安裝和啟動(dòng)Nacos,那么現(xiàn)在我們就淺談下Nacos的使用方法。
依賴
Nacos作為阿里的開(kāi)源項(xiàng)目,他的依賴也必然帶上了阿里,這一點(diǎn)注意別導(dǎo)錯(cuò)依賴了。
我這里使用的是2.2.1RELEASE,在這里值得一提的是,最起碼nacos的大版本要和SpringBoot保持一致,注冊(cè)和配置中心的依賴保持一致?。。?!(如果后面出問(wèn)題了,記得看一下依賴)
<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>
配置文件
在這里要說(shuō)一下,配置文件在這里使用的是bootstrap.yml,為系統(tǒng)的配置文件,其優(yōu)先級(jí)大于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 #文件名,如果沒(méi)有配置則默認(rèn)為 ${spring.appliction.name} namespace: monitor auto-refresh: true enable-remote-sync-config: true #啟用遠(yuǎn)程同步配置, timeout: 3000 group: DEFAULT_GROUP #配置組 refresh-enabled: true server-addr: localhost:8848
下圖為Nacos的對(duì)應(yīng)關(guān)系:
在加上阿里的依賴后,啟動(dòng)類上還要添加注解@EnableDiscoveryClient開(kāi)啟配置。
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); } }
啟動(dòng)啟動(dòng)類后,訪問(wèn)nacos的地址https:localhost:8848/nacos,打開(kāi)服務(wù)列表,為你的服務(wù),服務(wù)名對(duì)應(yīng)
spring.application.name:xiaoguai
代碼
要實(shí)現(xiàn)配置文件的動(dòng)態(tài)刷新,還需要一個(gè)注解@RefreshScope
在需要?jiǎng)討B(tài)刷新的controller上添加此注解
注意:@Value注解為org.springframework.beans.factory.annotation.Value包下的,不要導(dǎo)成Lombok下的了?。?!
@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; } }
測(cè)試
在啟動(dòng)之后訪問(wèn)以上內(nèi)容
控制臺(tái)和網(wǎng)頁(yè)分別輸出為:
現(xiàn)在我們?cè)诓恢貑?yīng)用的情況下,修改Nacos的配置文件。
在上次的網(wǎng)頁(yè)進(jìn)行刷新操作,分別觀察網(wǎng)頁(yè)和控制臺(tái)的輸出:
這樣就完成了Nacos的動(dòng)態(tài)配置和動(dòng)態(tài)刷新了!!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java的ThreadPoolExecutor業(yè)務(wù)線程池詳細(xì)解析
這篇文章主要介紹了Java線程池ThreadPoolExecutor詳細(xì)解析,任務(wù)剛開(kāi)始進(jìn)來(lái)的時(shí)候就創(chuàng)建核心線程,核心線程滿了會(huì)把任務(wù)放到阻塞隊(duì)列,阻塞隊(duì)列滿了之后才會(huì)創(chuàng)建空閑線程,達(dá)到最大線程數(shù)之后,再有任務(wù)進(jìn)來(lái),就只能執(zhí)行拒絕策略了,需要的朋友可以參考下2024-01-01java中雪花算法時(shí)鐘回?fù)軉?wèn)題解決
本文介紹了分布式系統(tǒng)中使用雪花算法生成唯一ID時(shí)可能遇到的時(shí)鐘回?fù)軉?wèn)題,以及解決這個(gè)問(wèn)題的幾種方法,包括等待機(jī)制、擴(kuò)展位、預(yù)留時(shí)間戳或邏輯時(shí)鐘等,感興趣的可以了解一下2024-10-10Java中Maven項(xiàng)目導(dǎo)出jar包配置的示例代碼
這篇文章主要介紹了Java中Maven項(xiàng)目導(dǎo)出jar包配置的示例代碼,需要的朋友可以參考下2018-11-11ThreadLocal使用案例_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了ThreadLocal使用案例分析,需要的朋友可以參考下2017-08-08Java用三元運(yùn)算符判斷奇數(shù)和偶數(shù)的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了Java用三元運(yùn)算符判斷奇數(shù)和偶數(shù)的簡(jiǎn)單實(shí)現(xiàn),需要的朋友可以參考下2014-02-02java8升級(jí)到j(luò)ava17的兼容性分析與遷移指南
這篇文章主要為大家詳細(xì)介紹了從?Java?8?升級(jí)到?Java?17?的詳細(xì)分析和遷移步驟,包括代碼修改建議,依賴更新和配置調(diào)整,有需要的小伙伴可以參考一下2025-04-04SpringCloud?中防止繞過(guò)網(wǎng)關(guān)請(qǐng)求直接訪問(wèn)后端服務(wù)的解決方法
這篇文章主要介紹了SpringCloud中如何防止繞過(guò)網(wǎng)關(guān)請(qǐng)求直接訪問(wèn)后端服務(wù),本文給大家分享三種解決方案,需要的朋友可以參考下2023-06-06