SpringBoot項(xiàng)目與Nacos配置全過程
Spring Boot是一個(gè)開發(fā)Java應(yīng)用程序的框架,而Nacos是一個(gè)用于配置管理和服務(wù)發(fā)現(xiàn)的開源平臺(tái)。
在Spring Boot項(xiàng)目中使用Nacos作為配置中心,可以實(shí)現(xiàn)動(dòng)態(tài)配置管理和實(shí)時(shí)更新配置的能力。
一、Nacos服務(wù)端配置命名空間和yml文件
注意:建議大家以自己的名字全拼命名,防止大家搞混
yml 與properties文件區(qū)別?
YML(YAML)和Properties文件是兩種常見的配置文件格式,用于存儲(chǔ)應(yīng)用程序或系統(tǒng)的配置信息。
它們有以下區(qū)別:
- 語法結(jié)構(gòu):YML使用縮進(jìn)和冒號(hào)來表示層級(jí)關(guān)系,而Properties文件使用鍵值對(duì)的形式表示配置項(xiàng)。
- 可讀性:YML文件使用縮進(jìn)和結(jié)構(gòu)化的語法,因此更易于閱讀和理解。相比之下,Properties文件使用簡(jiǎn)單的鍵值對(duì)結(jié)構(gòu),可讀性較差。
- 復(fù)雜性:YML文件支持更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如列表、嵌套對(duì)象等,可以更靈活地表示配置信息。Properties文件只支持簡(jiǎn)單的鍵值對(duì),不支持復(fù)雜數(shù)據(jù)結(jié)構(gòu)。
- 擴(kuò)展性:YML文件可以輕松地添加注釋,以及處理更復(fù)雜的配置需求。Properties文件不支持注釋,且在處理復(fù)雜配置時(shí)可能變得冗長(zhǎng)和難以維護(hù)。
- 應(yīng)用場(chǎng)景:YML文件適用于需要更復(fù)雜結(jié)構(gòu)和層級(jí)關(guān)系的配置信息,例如Spring Boot應(yīng)用程序的配置文件。Properties文件適用于簡(jiǎn)單的鍵值對(duì)配置,常用于Java應(yīng)用程序的配置文件。
二、創(chuàng)建SpringBoot項(xiàng)目
在Idea中左上角選擇【File】,右擊選擇【New】,右擊選擇【Project】
此處我們要建立的是SpringBoot項(xiàng)目,在左邊的列表中選擇【Spring Initializer】,填寫項(xiàng)目的名稱,配置jdk版本,此處根據(jù)自己的實(shí)際需要進(jìn)行配置即可,完成之后點(diǎn)擊【Next】
展開【W(wǎng)eb】下拉列表,勾選上【Spring Web】,完成后點(diǎn)擊【Finish】
項(xiàng)目創(chuàng)建成功之后我們會(huì)發(fā)現(xiàn)會(huì)有很多文件夾和文件,我們只需要留下【pom.xml】文件即可,其余文件我們暫時(shí)用不到可以先刪除
在父pom.xml中添加spring boot,spring cloud,spring cloud alibaba三個(gè)依賴
<dependencyManagement> <dependencies> <!--spring boot,spring cloud,spring cloud alibaba--> <!--選用官網(wǎng)穩(wěn)定的版本--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.3.12.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Hoxton.SR12</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.2.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
修改父pom.xml中配置的SpringBoot版本
可能會(huì)出現(xiàn)版本不兼容的問題,我們?cè)谶@里將SpringBoot版本修改為【2.3.12.RELEASE】
三、創(chuàng)建子服務(wù)
這時(shí)候我們要新建兩個(gè)子服務(wù)
點(diǎn)擊項(xiàng)目名【NacosInstance】右擊選擇【New】,右擊選擇【Module】
要?jiǎng)?chuàng)建兩個(gè)子服務(wù)都是普通的Maven項(xiàng)目,所以這里我們選擇【Maven】就可以,完成后點(diǎn)擊【Next】
輸入新創(chuàng)建服務(wù)的名稱和地址,完成后點(diǎn)擊【Finish】
此時(shí)項(xiàng)目中就多了一個(gè)名叫order-Service的服務(wù),我們?yōu)樾绿砑拥姆?wù)配置nacos依賴,點(diǎn)擊進(jìn)入oser-service服務(wù)的【pom.xml】文件
<dependencies> <!-- nacos服務(wù)注冊(cè)/發(fā)現(xiàn)--> <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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
在order-Service子服務(wù)的src文件夾中,選擇【resources】右擊新建一個(gè)yml配置文件,并進(jìn)行nacos的配置
server: port: 9000 servlet: context-path: /order-Service spring: cloud: nacos: discovery: server-addr: 152.136.111.77:5555 namespace: 10ecded1-361f-45d7-a009-ad2355304ff5 config: server-addr: 152.136.111.77:5555 namespace: 10ecded1-361f-45d7-a009-ad2355304ff5 prefix: order file-extension: yml application: name: order
四、Controller編寫
在order-Service服務(wù)中按照下圖的格式新建兩個(gè)文件,分別為啟動(dòng)類和請(qǐng)求類
在【OrderController】類中編寫請(qǐng)求的邏輯代碼
package order.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/placeOrder") @Controller public class OrderController { @GetMapping("/order") public String placeOrder(){ return "已下單"; } }
在【OrderServiceApplication】類中編寫程序啟動(dòng)邏輯
package order; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient public class OrderServiceApplication { public static void main(String[] args) { SpringApplication.run(OrderServiceApplication.class, args); } }
五、Tomcat啟動(dòng)程序
配置成功
此時(shí),我們?cè)俅卧跒g覽器中打開Nacos服務(wù)端,點(diǎn)擊【服務(wù)列表】,我們配置的order-Service服務(wù)就注冊(cè)成功啦?。?/p>
總結(jié)
通過以上步驟,就可以在Spring Boot項(xiàng)目中使用Nacos作為配置中心,并實(shí)現(xiàn)動(dòng)態(tài)配置管理。
在Nacos中更新配置后,應(yīng)用程序?qū)⒆詣?dòng)獲取最新的配置值。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java+Freemarker實(shí)現(xiàn)根據(jù)XML模板文件生成Word文檔
這篇文章主要為大家詳細(xì)介紹了Java如何使用Freemarker實(shí)現(xiàn)根據(jù)XML模板文件生成Word文檔,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下2023-11-11JavaWeb實(shí)現(xiàn)Session跨頁面?zhèn)鬟f數(shù)據(jù)
本文主要介紹了 JavaWeb實(shí)現(xiàn)Session跨頁面?zhèn)鬟f數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07初步認(rèn)識(shí)JVM的體系結(jié)構(gòu)
大家都知道,Java中JVM的重要性,學(xué)習(xí)了JVM你對(duì)Java的運(yùn)行機(jī)制、編譯過程和如何對(duì)Java程序進(jìn)行調(diào)優(yōu)相信都會(huì)有一個(gè)很好的認(rèn)知.在面試中JVM也是非常重要的一部分,比如JVM調(diào)優(yōu),JVM對(duì)象分配規(guī)則,內(nèi)存模型、方法區(qū),還有種要GC等,需要的朋友可以參考下2021-06-06關(guān)于JAVA經(jīng)典算法40題(超實(shí)用版)
本篇文章小編為大家介紹一下,關(guān)于JAVA經(jīng)典算法40題(超實(shí)用版),有需要的朋友可以參考一下2013-04-04Spring定時(shí)任務(wù)注解@Scheduled詳解
這篇文章主要介紹了Spring定時(shí)任務(wù)注解@Scheduled詳解,@Scheduled注解是包org.springframework.scheduling.annotation中的一個(gè)注解,主要是用來開啟定時(shí)任務(wù),本文提供了部分實(shí)現(xiàn)代碼與思路,需要的朋友可以參考下2023-09-09Spring MVC數(shù)據(jù)處理和亂碼問題詳解
這篇文章主要給大家介紹了關(guān)于Spring MVC數(shù)據(jù)處理和亂碼問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Spring的@PreAuthorize注解自定義權(quán)限校驗(yàn)詳解
這篇文章主要介紹了Spring的@PreAuthorize注解自定義權(quán)限校驗(yàn)詳解,由于項(xiàng)目中,需要對(duì)外開放接口,要求做請(qǐng)求頭校驗(yàn),不做其他權(quán)限控制,所以準(zhǔn)備對(duì)開放的接口全部放行,不做登錄校驗(yàn),需要的朋友可以參考下2023-11-11