springboot集成nacos實現(xiàn)自動刷新的示例代碼
1.說明
springboot項目中存在好多配置文件,比如配置數(shù)據(jù)信息,redis信息等等,配置文件可以直接放在代碼,也可以放在像nacos這樣的組件中,實現(xiàn)動態(tài)的管理,修改配置文件后不用進行項目的重啟,直接可以實現(xiàn)自動刷新。
官網(wǎng)地址:
2.示例
①引入依賴
引入的nacos依賴要注意和springboot依賴適配。
<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.2.5</version> </dependency> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.10.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
②在nacos中添加配置文件
本地啟動nacos之后,打開nacos畫面,賬號和密碼都是nacos,如下:
新建命名空間
可以根據(jù)情況選擇是否要創(chuàng)建命名空間,默認的命名空間是public。
新建配置
在配置管理中,選擇配置列表,然后選擇新建配置所在的命名空間,點擊右側(cè)的加號,新建配置
輸入配置文件的data id,data id就是配置文件的名字,在springboot項目中根據(jù)data id引入此配置文件。
group默認是DEFAULT_GROUP,可以設置成其他的,一般會設置為dev、test、prod,分別對應開發(fā)環(huán)境,測試環(huán)境及生產(chǎn)環(huán)境。
配置文件的格式一般是yaml或者時properities。
在配置文件內(nèi)容中寫入配置信息。
③在springboot項目中引入配置
(1)在springboot項目的配置文件中添加nacos配置信息
配置nacos地址及命名空間,如果新創(chuàng)建了命名空間,需要指定一下命名空間id
nacos.config.server-addr=http://192.168.8.178:8848 #nacos.config.auto-refresh=true nacos.config.namespace=5776702f-a25a-42f4-89d9-31114cfe160f
(2)在啟動類中添加引入的nacos配置文件
通過NacosPropertySource注解,指定要引入配置文件的dataId及設置自動刷新為true。
package com.example.demo; import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @MapperScan("com.example.demo.mapper") @NacosPropertySource(dataId = "application",autoRefreshed = true) @NacosPropertySource(dataId = "demo1",autoRefreshed = true) @EnableScheduling public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
(3)在程序中引入配置文件中的項目值
在程序中通過NacosValue引入配置文件中的項目內(nèi)容,通過value屬性指定項目id并設置自動刷新
@NacosValue(value = "${server.name}",autoRefreshed = true) private String name; @NacosValue(value = "${student.id}",autoRefreshed = true) private String idInfo; @NacosValue(value="${student.name}",autoRefreshed = true) private String nameInfo;
(4)啟動項目
啟動項目之后,就發(fā)現(xiàn)可以引用到配置文件中的內(nèi)容,并且在nacos畫面中修改了配置文件中項目的值,再次發(fā)起請求,發(fā)現(xiàn)代碼中引用的值也會自動刷新。
3.自動刷新的注意點
①必須在啟動類中引入配置文件時,設置自動刷新為true。
②必須在程序引用配置文件中的項目時,設置自動刷新為true。
③配置文件中的自動刷新可以不進行設置。
到此這篇關(guān)于springboot集成nacos實現(xiàn)自動刷新的示例代碼的文章就介紹到這了,更多相關(guān)springboot nacos自動刷新內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java ScheduledExecutorService定時任務案例講解
這篇文章主要介紹了Java ScheduledExecutorService定時任務案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08Java中ThreadLocal使用原理及Synchronized區(qū)別
ThreadLocal叫做線程變量,本文詳細的介紹了ThreadLocal使用原理及Synchronized區(qū)別,有需要的朋友可以參考一下,希望對你有所幫助。2023-05-05SpringBoot基于Redis的分布式鎖實現(xiàn)過程記錄
Redis是一套 key-value 高性能數(shù)據(jù)庫,使用它可以大大提高我們的開發(fā)效率,在SpringBoot中,自動配置也幫我們節(jié)約了大量的配置,下面這篇文章主要給大家介紹了關(guān)于SpringBoot基于Redis的分布式鎖實現(xiàn)的相關(guān)資料,需要的朋友可以參考下2022-01-01