springboot實(shí)現(xiàn)讀取nacos配置文件
springboot讀取nacos配置文件
SpringBoot 注冊服務(wù)到 Nacos 上,由 Nacos 來做服務(wù)的管理。
在 Nacos的配置列表中,管理著服務(wù)的配置文件。
SpringBoot 有兩種方式來讀取配置文件的內(nèi)容,一種是寫配置文件類 @ConfigurationProperties ,一種是使用 @Value 注解。
首先,Nacos 的配置文件如下:
### 配置文件使用 yml 格式, 也可以使用 properties 格式,最終 yml 格式會轉(zhuǎn)化成 properties,但是 @Value 注解### 對 yml 的list 的格式有不同,這個(gè)稍后再說。
eg: server.yml (list參數(shù),使用逗號分隔)
dashboard:
emergent-info: key-1:value-1,key-2:value-2,key-3:value-3
### 或者這種形式 (注意縮進(jìn)空格,- 后空格)
dashboard:
emergent-info:
- key-1:value-1
- key-2:value-2
- key-3:value-3 第一種方式來解析
@Setter
@Getter
@ConfigurationProperties("server")
public class ServerProperties {
private List<String> dashboardEmergentInfo;
}使用 @ConfigurationProperties 方式來解析,要對應(yīng)配置文件名,對應(yīng)屬性的key值順序和參數(shù)名的駝峰形式命名。
配置文件類的方式,可以解析上面 list 的兩種寫法。
第二種方式來解析
@RefreshScope
public class DashboardController{
@Value("${dashboard.emergent-info:}")
private List<String> emergentInfo = new ArrayList<>();
...
} 使用 @Value 注解的方式,代碼量是少了,但是解析不了上面配置文件的第二種方式,只能解析第一種使用逗號分隔的list數(shù)據(jù)。
@Value里面的冒號后面是初始化值,這里做空處理。
Nacos 修改配置文件list的內(nèi)容,@Value 注解不會時(shí)時(shí)的刷新處理數(shù)據(jù),所以在 類上加了 @RefreshScope。
springboot讀取nacos配置yml文件
首先導(dǎo)入nacos依賴
<!-- nacos客戶端依賴 注冊中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
<!-- nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
一個(gè)是注冊中心一個(gè)是配置中心
需要在bootstrap.yml配置服務(wù)名稱和開發(fā)環(huán)境:
server:
port:18080
spring:
application:
name: userservice-server
Profiles:
active:dev //開發(fā)環(huán)境
cloud:
nacos:
discovery:
server-addr: localhost:8848 /// 這是默認(rèn)端口 注冊中心地址
config:
server-addr: localhost:8848 /// 這是默認(rèn)端口 配置中心地址
file-extension: yaml //nacos注冊中心配置文件是yaml文件,最好在這里配置一下
然后就可以開始配置nacos配置中心了
Data ID: userservice-server-dev.yaml //這個(gè)地方就是服務(wù)名稱-開發(fā)環(huán)境.yaml 下面文件類別只有yaml
//group 默認(rèn)就行不用改 //描述 按自己需求寫就行 //配置格式:選yaml //配置內(nèi)容:按自己需求 寫yaml配置文件就可以了 注意空格問題,多敲少敲讀取不到 yml格式
一定注意格式敲正確,over
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中的Monad設(shè)計(jì)模式及其實(shí)現(xiàn)過程
本文介紹了Java中的Monad設(shè)計(jì)模式及其在函數(shù)式編程中的應(yīng)用,雖然Java不是函數(shù)式編程語言,但可以通過接口和泛型模擬Monad的行為,實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用和上下文管理,通過一個(gè)示例展示了如何使用OptionalMonad進(jìn)行鏈?zhǔn)秸{(diào)用,并解析了Monad接口和OptionalMonad的實(shí)現(xiàn)細(xì)節(jié)2025-03-03
IntelliJ Idea 2020.1 正式發(fā)布,官方支持中文(必看)
這篇文章主要介紹了IntelliJ Idea 2020.1 正式發(fā)布,官方支持中文了,本文通過截圖的形式給大家展示,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
背包問題-動(dòng)態(tài)規(guī)劃java實(shí)現(xiàn)的分析與代碼
這篇文章主要給大家介紹了關(guān)于背包問題動(dòng)態(tài)規(guī)劃java實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
IntelliJ IDEA像Eclipse一樣打開多個(gè)項(xiàng)目的圖文教程
這篇文章主要介紹了IntelliJ IDEA像Eclipse一樣打開多個(gè)項(xiàng)目的方法圖文教程講解,需要的朋友可以參考下2018-03-03
12個(gè)SpringBoot配置文件的實(shí)用技巧分享
配置文件是SpringBoot應(yīng)用的核心組成部分,它決定了應(yīng)用的行為、連接參數(shù)以及功能特性,本文為大家整理了12個(gè)SpringBoot配置文件的實(shí)用技巧,有需要的可以了解下2025-05-05
RocketMQ設(shè)計(jì)之故障規(guī)避機(jī)制
這篇文章主要介紹了RocketMQ設(shè)計(jì)之故障規(guī)避機(jī)制,故障規(guī)避機(jī)制就是用來解決當(dāng)Broker出現(xiàn)故障,Producer不能及時(shí)感知而導(dǎo)致消息發(fā)送失敗的問題,下面詳細(xì)介紹需要的小伙伴可以參考一下2022-03-03

