Spring Cloud Alibaba Nacos 配置中心的使用

一、需求

主要實現(xiàn) nacos 作為配置中心的一些使用方法。

二、實現(xiàn)功能

1、加載 product-provider-dev.yaml 配置文件

2、實現(xiàn)配置的自動刷新

3、實現(xiàn)加載多個配置文件

4、配置文件的優(yōu)先級

三、注意事項

1、和 nacos config 配置相關的代碼都需要定義在 bootstrap.yml配置文件中

spring.application.name
spring.profiles.active
spring.cloud.nacos.config.xxx

2、測試的過程中,發(fā)現(xiàn)如果定時任務的類上增加類 @RefreshScope 注解,那么 nacos 中的配置屬性動態(tài)修改后,這個定時任務會失效。(參考代碼:com.huan.study.product.RefreshScopeScheduledTask)
3、如果在一個線程中,隔固定周期打印@Value注解中的值,在nacos修改值后,不會改變(參考代碼com.huan.study.product.PrintPropertiesTask#initPrint
4、最好不要出現(xiàn)配置文件中存在優(yōu)先級。

四、功能實現(xiàn)

1、加載 單個 配置文件

加載 單個 配置文件

1、data id 的定義:

${prefix}-${spring.profile.active}.${file-extension}

prefix:默認情況下為 spring.application.name 的值,也可以通過配置項 spring.cloud.nacos.config.prefix來配置

spring.profile.active:這個值 需要在 bootstrap.yml配置文件中定義,或通過命令行參數(shù)傳遞,可以為空,此時配置退化為 ${prefix}.${file-extension}

file-extension:指定配置文件的后綴,默認為properties,可以指定為yaml

2、和 nacos 相關的配置放置的位置

需要放在 bootstrap.yml 配置文件中。

2、實現(xiàn)配置的自動刷新

1、基于 ConfigurationProperties 配置的屬性,可以自動刷新配置。
2、基于 @Value 注解配置的屬性,需要在類上增加 @RefreshScope 注解
3、基于 @ConditionalOnProperty 這類注解,配置的屬性如果放在 nacos中配置,第一次程序啟動的時候生效,后期在nacos中修改不生效
注意:
????測試的過程中,發(fā)現(xiàn)
1、如果定時任務的類上增加類 @RefreshScope 注解,那么 nacos 中的配置屬性動態(tài)修改后,這個定時任務會失效。
2、如果在一個線程中,隔固定周期打印@Value注解中的值,在nacos修改值后,不會改變

3、實現(xiàn)加載多個配置文件

可以實現(xiàn)同一個項目中存在多個配置文件,或多個項目共享同一個配置文件


加載多配置文件

4、配置文件的優(yōu)先級

配置文件的優(yōu)先級

spring.cloud.nacos.config.extension-configs[n].data-id中的 n 的值越大,優(yōu)先級越高。

五、代碼路徑

https://gitee.com/huan1993/spring-cloud-alibaba-parent/tree/master/nacos-config

六、參考鏈接

https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
配置屬性無法刷新

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容