springboot實現(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 的格式有不同,這個稍后再說。 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ù)據(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>
一個是注冊中心一個是配置中心
需要在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 //這個地方就是服務(wù)名稱-開發(fā)環(huán)境.yaml 下面文件類別只有yaml
//group 默認(rèn)就行不用改 //描述 按自己需求寫就行 //配置格式:選yaml //配置內(nèi)容:按自己需求 寫yaml配置文件就可以了 注意空格問題,多敲少敲讀取不到 yml格式
一定注意格式敲正確,over
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java語言描述Redis分布式鎖的正確實現(xiàn)方式
這篇文章主要介紹了java語言描述Redis分布式鎖的正確實現(xiàn)方式,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12spring security中的csrf防御原理(跨域請求偽造)
這篇文章主要介紹了spring security中的csrf防御機(jī)制原理解析(跨域請求偽造),本文通過實例代碼詳解的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12SpringBoot+RabbitMQ實現(xiàn)消息可靠傳輸詳解
消息的可靠傳輸是面試必問的問題之一,保證消息的可靠傳輸主要在生產(chǎn)端開啟?comfirm?模式,RabbitMQ?開啟持久化,消費端關(guān)閉自動?ack?模式。本文將詳解SpringBoot整合RabbitMQ如何實現(xiàn)消息可靠傳輸,需要的可以參考一下2022-05-05