Java springboot 整合 Nacos的實(shí)例代碼
Nacos注冊(cè)中心使用
1)工程添加依賴包
<!-- nacos注冊(cè)中心依賴包 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- 監(jiān)控檢查-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2)nacos-web工程添加配置文件bootstrap.yml
spring:
application:
name: nacos-web
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
server:
port: 9100
#健康檢查
management:
endpoints:
web:
exposure:
include: "*"
3)nacos-web工程添加啟動(dòng)類(lèi)
@SpringBootApplication
@EnableDiscoveryClient
public class NacosWebApplication {
public static void main(String[] args) {
SpringApplication.run(NacosWebApplication.class,args);
}
}
4)nacos-web工程新建InfoController
@RestController
public class InfoController {
@Value("${server.port}")
private String port;
@Value("${key:''}")
private String key;
@GetMapping(value = "/echo/{message}")
public String echo(@PathVariable(value = "message") String message) {
return "Hello Nacos Discovery " + message + ", i am from port " + port;
}
@GetMapping(value = "/config")
public String config() {
return "Hello Nacos Config get "+key ;
}
}
5)啟動(dòng)服務(wù)并查看效果

6)編輯配置內(nèi)容

7)啟動(dòng)項(xiàng)目訪問(wèn)工程

☆ 動(dòng)態(tài)刷新☆
Nacos Config Starter 默認(rèn)為所有獲取數(shù)據(jù)成功的 Nacos
的配置項(xiàng)添加了監(jiān)聽(tīng)功能,在監(jiān)聽(tīng)到服務(wù)端配置發(fā)生變化時(shí)會(huì)實(shí)時(shí)觸發(fā)
org.springframework.cloud.context.refresh.ContextRefresher 的 refresh
方法 。如果需要對(duì) Bean 進(jìn)行動(dòng)態(tài)刷新,參照 Spring 和 Spring Cloud 規(guī)范。推薦給類(lèi)添加 @RefreshScope
進(jìn)行自動(dòng)刷新
發(fā)布新配置

接受到了新配置


8)多環(huán)境支持
為不同的環(huán)境編寫(xiě)專(zhuān)門(mén)的配置文件,可以通過(guò)切換profiles的參數(shù)來(lái)實(shí)現(xiàn)
測(cè)試環(huán)境 test
開(kāi)發(fā)環(huán)境 dev
生產(chǎn)環(huán)境 prod
--spring.profiles.active=環(huán)境名稱(chēng)

9) Nacos實(shí)現(xiàn)多配置
nacos可以同時(shí)支持多環(huán)境配置。只需要在nacos配置中心中根據(jù)dataId進(jìn)行區(qū)分即可。dataId 完整的拼接格式如下
在 Nacos Config Starter 中,dataId 完整的拼接格式如下
${prefix}-${spring.profiles.active}.${file-extension} prefix默認(rèn)為
spring.application.name的值,也可以通過(guò)配置項(xiàng)
spring.cloud.nacos.config.prefix來(lái)配置。spring.profiles.active即為當(dāng)前環(huán)境對(duì)應(yīng)的
profile file-extension為配置內(nèi)容的數(shù)據(jù)格式,可以通過(guò)配置項(xiàng)
spring.cloud.nacos.config.file-extension來(lái)配置。 目前只支持properties類(lèi)型。
10)修改bootstrap.yml
spring:
profiles:
active: dev #開(kāi)發(fā)環(huán)境
application:
name: nacos-web
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
file-extension: yml #后綴
prefix: nacos-web #前綴
server:
port: 9100
11)nacos中新增配置信息

當(dāng)前開(kāi)發(fā)環(huán)境為dev時(shí)


12)不同應(yīng)用間配置信息共享
Nacos中新建common.yml

修改nacos-web工程配置文件,添加
spring:
application:
name: nacos-web
cloud:
nacos:
discovery:
server-addr: 192.168.200.128:8848
config:
server-addr: 192.168.200.128:8848
file-extension: yml #指定文件擴(kuò)展名,默認(rèn)為properties
prefix: nacos-web
#添加共享配置的dataId,如多個(gè)使用逗號(hào)分隔,并且越靠后,優(yōu)先級(jí)越高
#文件后綴名不能少,只支持yaml,yml,properies
shared-dataids: common.yml
#哪些共享配置支持動(dòng)態(tài)刷新,如多個(gè)使用逗號(hào)分隔
refreshable-dataids: common.yml
profiles:
active: dev #開(kāi)發(fā)環(huán)境
server:
port: 9100
management:
endpoints:
web:
exposure:
include: "*"
#日志
logging:
level:
org.springframework.web: debug

到此這篇關(guān)于Java springboot 整合 Nacos的文章就介紹到這了,更多相關(guān)Java springboot 整合 Nacos內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 解決Nacos集群?jiǎn)?dòng)失敗:java版本問(wèn)題
- 使用Java自制一個(gè)一個(gè)Nacos
- Java中基于Nacos實(shí)現(xiàn)Sentinel規(guī)則持久化詳解
- Java微服務(wù)Nacos Config配置中心超詳細(xì)講解
- Java?nacos動(dòng)態(tài)配置實(shí)現(xiàn)流程詳解
- 一篇文章帶你了解Java SpringBoot Nacos
- 解決nacos報(bào)錯(cuò)java.lang.ClassNotFoundException: com.netflix.config.DynamicPropertyFactory的問(wèn)題
相關(guān)文章
Java使用AOP技術(shù)實(shí)現(xiàn)通用接口驗(yàn)簽工具
這篇文章主要為大家詳細(xì)介紹了Java如何使用AOP技術(shù)實(shí)現(xiàn)通用接口驗(yàn)簽工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下吧2025-03-03
Mybatis中強(qiáng)大的resultMap功能介紹
這篇文章主要給大家介紹了關(guān)于Mybatis中強(qiáng)大的resultMap功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
Java底層基于鏈表實(shí)現(xiàn)集合和映射--集合Set操作詳解
這篇文章主要介紹了Java底層基于鏈表實(shí)現(xiàn)集合和映射集合Set操作,結(jié)合實(shí)例形式詳細(xì)分析了Java使用鏈表實(shí)現(xiàn)集合和映射相關(guān)原理、操作技巧與注意事項(xiàng),需要的朋友可以參考下2020-03-03
詳解設(shè)計(jì)模式中的proxy代理模式及在Java程序中的實(shí)現(xiàn)
代理模式主要分為靜態(tài)代理和動(dòng)態(tài)代理,使客戶端方面的使用者通過(guò)設(shè)置的代理來(lái)操作對(duì)象,下面來(lái)詳解設(shè)計(jì)模式中的proxy代理模式及在Java程序中的實(shí)現(xiàn)2016-05-05
Spring Boot 訪問(wèn)安全之認(rèn)證和鑒權(quán)詳解
這篇文章主要介紹了Spring Boot 訪問(wèn)安全之認(rèn)證和鑒權(quán),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
解析MyBatis源碼實(shí)現(xiàn)自定義持久層框架
這篇文章主要介紹了手撕MyBatis源碼實(shí)現(xiàn)自定義持久層框架,涉及到的設(shè)計(jì)模式有Builder構(gòu)建者模式、??模式、代理模式,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
spring mvc4.1.6 spring4.1.6 hibernate4.3.11 mysql5.5.25開(kāi)發(fā)環(huán)境搭
這篇文章主要介紹了spring mvc4.1.6 + spring4.1.6 + hibernate4.3.11+mysql5.5.25開(kāi)發(fā)環(huán)境搭建圖文教程,需要的朋友可以參考下2016-06-06
java基于jedisLock—redis分布式鎖實(shí)現(xiàn)示例代碼
這篇文章主要介紹了jedisLock—redis分布式鎖實(shí)現(xiàn)示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11


