導航:首頁 > 文件管理 > springcloud讀取本地配置文件

springcloud讀取本地配置文件

發布時間:2023-08-06 12:28:05

❶ Spring Cloud-Nacos配置管理

前置文章:
一、Spring Cloud-Erueka服務注冊&發現
二、Spring Cloud-Nacos服務注冊&發現

tips:Ctrl + F定位到所需內容快速閱讀吧。

①常規項目:項目啟動→讀取application.yml配置文件→創建Spring IOC容器→載入Bean;
②Nacos配置中心項目:項目啟動→讀取Nacos配置中心文件→讀取application.yml配置文件→創建Spring IOC容器→載入Bean;
注意 :此處的問題是Nacos server-addr相關配置在application.yml中,所以引入bootstrap.yml配置,來提前載入Nacos配置中心所需配置。
③Nacos配置中心項目:項目啟動→讀取bootstrap.yml配置文件→讀取Nacos配置中心文件→讀取application.yml配置文件→創建Spring IOC容器→載入Bean;

注意 :SpringCloud2020及以後的版本默認不啟用 bootstrap 配置,我們需要在pom裡面顯式地引入,以開啟bootstrap.yml配置文件讀取的支持。

user服務讀取配置中心配置三要素:
①spring-application-name:應用名稱-userservice;
②spring-profiles-active:配置文件環境-dev(代表開發環境develop);
③file-extension:文件擴展名-yaml;
配置中心處,配置文件完整名稱:userservice-dev.yaml

①配置管理→配置列表→➕

②編寫userservice-dev.yaml配置文件

①@Value註解注入配置屬性

②方法內讀取配置

在對應的@Value註解使用的類上使用@RefreshScope註解

編寫Config類:prefix = "pattern" + [field] dateformat,與配置文件pattern.dateformat 對應即可。

配置優先順序 :[spring-application-name][spring-profiles-active][file-extension]>[spring-application-name][file-extension]>本地配置;
即:服務名-環境類型.yaml>服務名.yaml>本地配置。
如果配置不同,則合並,相同則優先順序高的覆蓋優先順序低的。

另外:extension-configs的載入後於shared-configs。

以上即為Nacos配置管理的基礎內容,感謝閱讀。

❷ SpringBoot配置文件存放位置以及讀取順序

默認情況下,我們可以將application.properties或者application.yaml(為了方便演示,本文以下均以application.properties介紹)放置在如下四處:

1.1、idea中,為了我們本地方便開發測試,我們在此處創建一個config目錄,然後把application.properties放進去,項目正常運行。

jar包會自動生成在target目錄下。

我們將生成的jar包,復制出來,到另外文件夾進行運行,比如,我現在該jar包復制到test目錄下,但是這個時候是起不來,因為沒有配置文件,雖然我們在idea裡面是有config目錄的,但是它並不沒有被打包進去。我們要把config目錄也復制過來,跟該jar包放在同一個目錄下。

在此處,我們可以使用java -jar demo-0.01-SNAPSHOT來運行項目。

正常運行。

當我們將其打成jar包時,application.properties同樣不會被打包進jar包中。需要另外復制出來和jar包放在才能正常運行。

推薦以上兩種方式來放置配置文件,如果不寫開發,測試,和生產好幾套環境配置文件的話,就可以直接打開配置文件,改成自己需要的配置即可。

以下兩種方式是將該配置文件打包在jar包裡面了,即便只改一個埠號,開發人員先改配置文件,再打包,再運行。此處也記錄下,並解開jar包,看下該配置文件被打包後,放置的位置。

打包後,如下圖,jar包再target裡面,我們尋找下application.properties文件。為了方便演示,我們將target目錄下的demo-0.0.1-SNAPSHOT.jar放到一個新目錄給它解壓開,找下該配置文件,我放置到了一個test目錄下。

解壓後:如下圖,我們進入目錄

發現config目錄被放置在classes目錄下。然後這也就讓我們明白了,什麼是classpath?classpath的路徑到底指的是哪裡,在idea中我們就把它放置在resource目錄,該目錄就是表示classpath。而被打成jar包後classes目錄就是所謂的classpath。

所有的yaml文件,同理。

❸ 使用 IDEA 從 0 開始搭建 Spring Cloud 微服務

以下內容均來源於一個微服務初學者的實踐,僅供參考。

首先啟動 Spring Cloud Eureka 注冊中心,其他部分都作為服務注冊到 Eureka ,並通過注冊的服務名互相訪問。Spring Cloud Config 提供統一的配置信息,供其他服務讀取。Provider 生產者服務不直接對外暴露,僅供 Consumer 消費者服務調用。用戶通過 Spring Cloud Gateway 統一訪問消費者服務。

首先創建一個空 Maven 項目,然後右鍵項目 -> New Mole ,選擇繼續創建空 Maven 模塊或者使用 Spring Initializr 構建 Spring Cloud 模塊。common模塊用於存放公共的 lib ,如 、model 、util 等。config-dev 存放配置文件,上傳到 git 之後供 Spring Cloud Config 讀取。

除了少數像 Spring Cloud Config 、Spring Cloud Gateway 這種獨立應用,大部分非空模塊都需要添加 spring-boot-starter-web 構建 Web 應用。下圖是使用 IDEA 的 Spring Initializr 快速構建新模塊。

下面貼上詳細的配置文件和註解,bootstrap.yml 具有高優先順序,會提前載入並且不會被 application.yml 覆蓋,spring.cloud.config 需要配置在 bootstrap.yml 中,否則不能正常從配置中心獲取配置信息。

application.yml

HobbyEurekaApplication.java

application.yml

application-dev.yml

HobbyConfigApplication.java

bootstrap.yml

config-dev/gateway.yml

HobbyGatewayApplication.java

在 Spring Cloud Gateway 的配置中已經展示過如何從 config-dev 配置倉庫中讀取配置文件。spring.cloud.config 和 eureka.client 都已經在 bootstrap.yml 中配置過,接下來不做贅述。多模塊項目中掃描其他模塊的 mybatis 文件需要做額外的配置。
application.yml

HobbyProviderTestApplication.java

消費者調用生產者可以使用 Feign 聲明式服務調用。
HobbyConsumerTestApplication.java

TestFeignService.java

TestServiceImpl.java

Spring Cloud Eureka >> Spring Cloud Config >> Spring Cloud Gateway >> 其他服務

微服務架構能夠將各種服務解耦,單獨部署,配合 devops 才能展現出真正的威力,否則運維的工作會苦不堪言。gitlab 目前已經集成了 devops 功能,只要在項目中添加 .gitlab-ci.yml ,push 到 Gitlab 之後就會自動執行配置的命令,這里簡單介紹一下 gitlab 的安裝部署。
CentOS7 自帶的 Git 版本號是 1.8.3.1 ,需要更新,否則 Gitlab Runner 在進行自動構建的時候會報錯 fatal: git fetch-pack: expected shallow list ,更新步驟如下:

Gitlab 安裝官方文檔
Gitlab Runner 安裝官方文檔

配置文件的地址 /etc/gitlab/gitlab.rb
修改配置文件的操作:

常用配置:

❹ springboot實現動態載入遠程配置文件

有個獨立的API項目,該項目主要是對外部各個系統提供API介面,為了保證調用的安全,需要對請求進行校驗,主要校驗包括調用頻率,訪問IP,是否跨域和Token,其中IP和是否跨域的配置會根據接入方進行相應的修改,為了避免每次有新的接入方就得去修改一次配置文件並重啟項目,所以打算使用動態配置的方式。

初級實現方案:API服務每隔5分鍾向管理端請求一次數據,管理端添加IP和域白名單的管理,這個實現方案,簡單好用,但是弊端也明顯,管理端每次修改完配置後,客戶端需要等待下次請求後才會載入對應的配置,同時,還需要自己管理獲取到的配置文件

更新方案:在springboot啟動時,先從遠端獲取配置文件,並將其載入進Environment對象中,其餘的,就都交給Spring了。同時配合spring-cloud-context實現遠程配置變更後,本地重新拉取配置並更新

點進去之後,springboot會在這里初始化ConfigurableEnvironment對象

這里是給ConfigurableEnvironment做一些初始化工作,我們先不管了,重點在這里,listeners.environmentPrepared(environment);,Springboot通過事件,將Environment的載入分發出去

到此為止,我們就能像使用本地配置文件一樣使用伺服器上的配置文件了,但是這里還只實現了載入遠程配置文件,我們還需要在遠程配置文件變更時,實現配置文件的熱更新

閱讀全文

與springcloud讀取本地配置文件相關的資料

熱點內容
如何更新大數據量表 瀏覽:311
特殊量產工具 瀏覽:980
安卓網路顯示h2是什麼意思 瀏覽:90
哪個拍照app好 瀏覽:70
文件被設置隱藏屬性如何顯示 瀏覽:142
網路電視的好處 瀏覽:657
cf槍戰王者手游下載官網下載最新版本下載 瀏覽:925
stm32固件庫版本查看 瀏覽:396
如何從數控編程小白到大師 瀏覽:183
更改微信共享實時位置信息 瀏覽:13
js姓名正則 瀏覽:843
如何利用串口傳輸文件夾 瀏覽:346
jca文件怎麼用word打開 瀏覽:965
U盤文件木馬隱藏exe工具 瀏覽:152
下載優酷app視頻播放器安裝 瀏覽:38
兩個excel文件不同 瀏覽:585
如何更新網站內容 瀏覽:953
什麼網站下載廣場舞是免費的 瀏覽:307
西門子編程軟體怎麼變成中文 瀏覽:984
居客來wifi密碼 瀏覽:604

友情鏈接