【SpringBoot】SpringBoot配置

根據自動配置原理 學習后,整理學習筆記

一定要耐心去看,耐著性子去學習,慢慢慢慢就明白了

配置深化學習

前提

  1. 通過 @SpringBootApplication 找到 @EnableAutoConfiguration
  2. 發現 @Import({AutoConfigurationImportSelector.class})
  3. AutoConfigurationImportSelector中經過一系列配置調用后發現,最后回去使用 AutoConfiguration這個類;
  4. 根據這個AutoConfiguration ,找到了spring-boot-autoconfigure-3.5.4.jar;
  5. 在這個包中有org.springframework.boot.autoconfigure.AutoConfiguration.imports;

之后的配置使用

根據筆記梳理
  1. Spring的配置文件 spring.factories /org.springframework.boot.autoconfigure.AutoConfiguration.imports

  1. 在這個配置中直接指向了WebMvcAutoConfiguration

  1. WebMvcAutoConfiguration 里面都會有 @EnableConfigurationProperties(),在這個注解中綁定配置了一個文件 WebMvcProperties
    • @Configuration 表示是一個配置類,表示會被Spring接管;
    • @EnableConfigurationProperties 表示了配置的屬性類

  1. WebMvcProperties發現加載了一個@ConfigurationProperties("spring.mvc") 注解,跟我們的配置文件綁定,使用自定義的配置

  1. 在配置文件中 就對應能夠搜索的到,

總結

SpringBoot幫我們自動裝配,裝配完之后,去Properties中去取默認值;如果想要去修改默認值就按照對應的規則我們去配置文件中去匹配值

配置類生效,就會給容器中添加各種組件,這些組件單屬性是從properties去獲取的,每一個屬性都是和配置文件相綁定的;這樣我們就可以通過SpringBoot的配置文件去修改我們組件中的一些內容;

  1. SpringBoot啟動會加載大量的自動配置類
  2. 我們看我們需要的功能有沒有在SpringBoot默認寫好的自動配置類當中;
  3. 我們再來看這個自動配置類中到底配置了哪些組件;(只要我們要用的組件存在在其中,我們就不需要再手動配置了)
  4. 給容器中自動配置類添加組件的時候,會從properties類中獲取某些屬性。我們只需要在配置文件中指定這些屬性的值即可;
  • xxxxAutoConfigurartion:自動配置類;給容器中添加組件
  • xxxxProperties:封裝配置文件中相關屬性;

檢查是否生效

檢查配置類是否生效使用:debug=true,在Properties中添加根節點的debug屬性,就可以;

#開啟springboot的調試類
debug=true

會輸出到控制臺,可以看到哪些生效了;

  • Did not match : 沒有生效
  • Unconditional : 沒有條件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/92513.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92513.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92513.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡安全與軟件定義汽車的發展

在許多汽車公司,同一個系統工程團隊同時負責安全(safety)和安防(security)。因此,網絡安全被視為安全(safety)的一個子集,其根源在于一個隱含的假設:“如果安…

字典列表依據數值鍵排序

要根據字典列表中的特定數值鍵進行排序,我們可以使用 Python 的 sorted() 函數配合自定義排序鍵。以下是操作方法: 1. 按升序排序(從小到大) sorted_list sorted(original_list, keylambda x: x[數值鍵名])2. 按降序排序&#xf…

五、SpringBoot工程打包與運行

SpringBoot工程打包與運行 1、SpringBoot項目快速啟動(Windows版) (1)對SpringBoot項目打包(執行Maven構建指令package): mvn package (2)運行項目(執行啟動指令) java -jar springboot.jar 2、…

構建高可用架構:ZDNS GSLB 在多數據中心場景下的應用與 F5 替換實踐

隨著互聯網的快速發展,金融機構、大型企業等組織單位,出于自身業務發展的需要和國家監管的要求,紛紛通過建設多數據中心來提升不同地區的用戶體驗,同時避免不可抗力因素帶來的巨大損失。ZDNS GSLB 全局負載均衡技術,能…

【JMeter】壓測腳本生成完善增強

JMeter 壓測腳本生成完善增強0. 通過JMeter代理服務器錄制腳本1. 設置客戶端的代理2. JMeter GUI配置 以及錄制腳本3. 調試腳本附錄0. 通過JMeter代理服務器錄制腳本 1. 設置客戶端的代理 JMeter代理服務器默認端口號就是8888 2. JMeter GUI配置 以及錄制腳本 新建線程組 …

Agent 開發進階路線:從基礎功能到自主決策

Agent 開發進階路線:從基礎功能到自主決策基礎功能構建定義 Agent 的核心功能,如信息收集、簡單任務執行和環境交互。 實現基本的感知-決策-執行循環,確保 Agent 能響應外部輸入并完成預設任務。 集成 API 調用或傳感器交互,擴展 …

使用 ECharts GL 實現 3D 中國地圖點位飛線效果

前言在現代數據可視化領域,3D 地圖飛線效果是一種非常吸引人的展示方式,特別適合展示地理空間關系和數據流動。本文將詳細解析如何使用 ECharts GL 在 Vue 項目中實現一個 3D 中國地圖飛線效果。技術棧Vue.js 2.x/3.xECharts 5.xECharts GL 2.x核心實現步…

Redis對象編碼

前言 Redis中提供多種數據結構:string、list、map、set、zset等,關于上述多種數據類型的底層實現原理,Redis針對不同的數據類型對應的不同使用場景從時間和空間上進行平衡選擇不同的對象編碼方式。本文大致介紹一些Redis對象編碼方式以及在上…

12-Django項目實戰-登錄短信驗證

1.路由配置 2.對接第三方短信接口 詳細內容請點擊 3.視圖函數 def sms_view(request):"""短信驗證視圖邏輯1.獲取請求體的數據[phone]2.調用封裝的短信發送接口,實現發送短信"""data json.loads(request.body)phone data.get(&q…

Java技術棧/面試題合集(11)-設計模式篇

場景 Java入門、進階、強化、擴展、知識體系完善等知識點學習、性能優化、源碼分析專欄分享: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/140870227 通過對面試題進行系統的復習可以對Java體系的知識點進行查漏補缺。 注: 博客: 霸道流氓氣質-CSDN博…

Linux系統:Ext系列文件系統(軟件篇)

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄[TOC](文章目錄)一,ext2文件系統1-1 宏觀認識1-2 Block Group1-3 塊組內部構成1-3-1 超級塊(Super Block)1-3-2 塊組描述符表GDT(Group Descriptor Table…

14. isaacsim4.2教程-April Tags/給相機加噪聲

1. 前言April Tags 是一種視覺標簽(類似 QR 碼),用于通過相機進行定位和識別。它們通常用于計算機視覺任務中,幫助機器人識別和定位自己在物理空間中的位置,或者識別和追蹤特定對象。前提條件啟用 ROS 橋接&#xff1a…

Kafka + 時間輪 + 數據庫實現延遲隊列方案

Kafka 原生不支持延遲隊列功能。而RabbitMQ、RocketMQ及Redis等其他消息隊列原生支持延遲隊列。 RabbitMQ RocketMQ Redis 實現方式 通過插件實現,消息進入延遲隊列后根據配置時間過濾轉發。 原生支持,發送消息時設置延遲級別,定時任務處…

力扣 hot100 Day69

287. 尋找重復數 給定一個包含 n 1 個整數的數組 nums ,其數字都在 [1, n] 范圍內(包括 1 和 n),可知至少存在一個重復的整數。 假設 nums 只有 一個重復的整數 ,返回 這個重復的數 。 你設計的解決方案必須 不修改…

Android 的CameraX的使用(配置,預覽,拍照,圖像分析,錄視頻)

Android Studio 版本號:2024.1.2 CameraX是Jetpack系列中的一個庫,它基于Camera2 API構建,但提供了更高層次的抽象。 CameraX 三大核心用例: Preview預覽 ,ImageCapture拍照和 VideoCapture錄視頻 一、創建項目,進行環境配置 CameraX 需要一些屬于 Java 8 的方法,因此…

【機器學習深度學習】微調訓練數據質量

目錄 前言 一、為什么數據質量評估很重要 二、數據質量評估的核心維度 三、數據質量的可量化維度(必須要測的指標) 四、多答案、多類型數據的取舍與優化 場景 A:一個問題有多個相似回答 場景 B:多個類型數據,每…

從DeepSeek-V3到Kimi K2,大型語言模型架構對比

文章目錄 摘要 **稀疏化與專家系統** **注意力機制優化** **歸一化與穩定性設計** 模型架構對比詳析 DeepSeek-V3 vs Llama 4 Maverick Qwen3 vs SmolLM3 Kimi 2的突破 1 DeepSeek V3/R1 1.1 多頭潛在注意力(MLA) 1.2 混合專家系統(MoE) 1.3 DeepSeek 總結 2 OLMo 2 2.1 歸…

Unity筆記(二)——Time、Vector3、位置位移、角度、旋轉、縮放、看向

寫在前面寫本系列的目的(自用)是回顧已經學過的知識、記錄新學習的知識或是記錄心得理解,方便自己以后快速復習,減少遺忘。這里只有部分語法知識。五、Time時間相關1、時間縮放比例概念:可以通過UnityEngine.Time類的timeScale屬性控制游戲時…

vue+vite項目中怎么定義一個環境變量可以在開發環境和生產環境使用不同的值,并且可以在vue頁面和index.html通用。

首先我們需要下載一個插件vite-plugin-html然后再項目最外層和index.html同級目錄下新建.env.development和.env.production兩個項目并且定義你想要的環境變量名:注意要以VITE_開頭VITE_APP_MAP_TOKEN1233444然后vite.config.js文件import { defineConfig,loadEnv } from vite…

Python-深度學習--2信息熵,條件熵(ID3決策樹),KL散度

一、信息熵(Entropy)的計算與應用信息熵用于衡量一個概率分布的不確定性,值越大表示分布越分散(不確定性越高)。1. 數學定義對于離散概率分布 P,信息熵公式為:(通常以 2 為底單位是比…