SpringBoot 學習

SpringBoot 學習

什么是 Springboot

Spring Boot 是 Spring 提供的一個子項目,用于快速構建 Spring 應用程序

傳統的問題:

  • 導入依賴繁瑣
  • 項目配置繁瑣

SpringBoot 的特性

  • 起步依賴:整合所有 web 的依賴配置好了
  • 自動配置:bean 對象自動注入到 ioc 容器

配置文件

  • properties 配置文件

  • yaml 配置文件(一般使用)

    • 三方技術配置信息
    • 自定義配置信息
  • yml 配置信息的關聯

    • @Value 方式
      Value

    • ConfigurationProperties 方式
      ConfigurationProperties

整合 MyBatis

  • 一般的服務架構
    在這里插入圖片描述

  • @Autowired: https://cloud.tencent.com/developer/article/1897255

Bean 管理

  • 掃描

    • 標簽
    • 注解:@ComponetScan
  • 注冊

    • 內置
      在這里插入圖片描述
    • 外部
      • @Bean
      • @Import
        • 導入配置類
          在這里插入圖片描述 - 導入 ImportSelector 接口類實現(依賴第一種)
          在這里插入圖片描述

        • @EnableXxxx 注解,封裝 @Import 注解(其實都是 Java 語法)

  • 條件
    在這里插入圖片描述

自動配置原理

  • 自動配置
    遵循約定大約配置的原則,在 springboot 程序啟動后,起步依賴中的一些 bean 對象會自動注入到 ioc 容器

  • 源碼分析
    在這里插入圖片描述

  • 原理解釋

    1. 在主啟動類上添加了 SpringBootApplication 注解,這個注解組合了 EnableAutoConfiguration 注解
    2. EnableAutoConfiguration 注解又組合了 Import 注解,導入了 AutoConfigurationlmportSelector 類
    3. AutoConfigurationlmportSelector 類實現 selectlmports 方法,這個方法經過層層調用,最終會讀取 META-INF 目錄下的后綴名為 imports 的文件。當然了,boot2.7 以前的版本,讀取的是 spring.factories 文件
    4. 讀取到全類名了之后,會解析注冊條件,也就是 @Conditional 及其行生注解把滿足注冊條件的 Bean 對象自動注入到 I0C 容器中

自定義 starter

  • 創建 mybatis-spring-boot-autoconfigure 模塊,提供自動配置功能,并自定義配置文件 META-INF/spring/xxx.imports
  • 創建 mybatis-spring-boot-starter 模塊,在 starter 中引入自動配置模塊

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

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

相關文章

到達率的變化動態調整服務器的服務率,實現負載均衡,提高資源利用效率

中心可以根據任務到達率的變化動態調整服務器的服務率,實現負載均衡,提高資源利用效率 服務率和到達率 中心可以根據任務到達率的變化動態調整服務器的服務率,實現負載均衡,提高資源利用效率服務率(Service Rate)到達率(Arrival Rate)控制參數實現負載均衡的方法在云計…

最新全開源IM即時通訊系統源碼(PC+WEB+IOS+Android)部署指南

全開源IM(即時通訊)系統源碼部署是一個復雜但系統的過程,涉及多個組件和步驟。以下是一個詳細的部署指南,旨在幫助開發者或系統管理員成功部署一個全開源的IM系統,如OpenIM。      IM即時通訊系統源碼準備工作   …

CAD c# 生成略縮圖預覽

代碼如下: using (Transaction tr currentdb.TransactionManager.StartTransaction()){//當前數據庫開啟事務using (Database tempdb new Database(false, true)) //創建臨時數據庫(兩個參數:是否創建符號表,不與當前文檔關聯){try{Bitmap …

CloudberryDB(二) 演化路線圖

CloudberryDB 制定了演化路線圖(https://github.com/orgs/cloudberrydb/discussions/369)并在逐步改進,這是 Cloudberry Database 發揮獨特價值之處。 計劃、正在進行或已完成的一些工作。 支持輕松升級 PostgreSQL 內核版本。 原有 Greenp…

單片機:實現呼吸燈(附帶源碼)

單片機實現呼吸燈詳細解讀 呼吸燈是一種常見的燈光效果,廣泛應用于電子產品、汽車、家居照明等領域。其基本特性是通過逐漸增亮和減弱的方式,使得燈光呈現出“呼吸”的效果,給人一種平緩、舒適的視覺感受。在嵌入式系統中,呼吸燈…

[面試題]--索引用了什么數據結構?有什么特點?

答:使用了B樹: 時間復雜度:O(logN),可以有效控制樹高 B樹特點: 1.葉子節點之間有相互鏈接的作用,會指向下一個相近的兄弟節點。 MySQL在組織葉子節點使用的是雙向鏈表 2.非葉子節點的值都保存在葉子節點當中 MySQL非葉…

ansible自動化運維(五)roles角色管理

Roles角色管理 角色(roles)是ansible自1.2版本開始引入的新特性,用于層次性,結構化地組織playbook。 roles能夠根據層次型結構自動裝載變量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。簡單的…

操作系統:文件系統

目錄 1、文件 概念: UNIX文件分類: 2、文件系統 3、文件的訪問方式 順序訪問 隨機訪問 4、文件的組織 邏輯組織 物理組織 5、倒排結構(了解) 5、文件目錄 文件控制塊(FCB) ?編輯 目錄項 單…

單元測試-FATAL ERROR in native method: processing of -javaagent failed

文章目錄 前言單元測試-FATAL ERROR in native method: processing of -javaagent failed1. 報錯信息2. 解決方案 前言 如果您覺得有用的話,記得給博主點個贊,評論,收藏一鍵三連啊,寫作不易啊^ _ ^。 ??而且聽說點贊的人每天的運…

決策曲線分析(DCA)中平均凈收益用于評價模型算法(R自定義函數)

決策曲線分析(DCA)中平均凈收益用于評價模型算法 DCA分析雖然不強調用來評價模型算法或者變量組合的優劣,但是實際應用過程中感覺DCA曲線的走勢和模型的效能具有良好的一致性,其實這種一致性也可以找到內在的聯系,比如…

快速且靠譜的簡單安裝 PostgreSQL 15 yum 安裝postgis3.3

快速且靠譜的簡單安裝 PostgreSQL 15 yum 安裝postgis3.3 1、確保已經安裝了PostgreSQL數據庫。2、添加PostGIS的EPEL倉庫3、使用YUM安裝PostGIS4、以下為其他安裝方式,一個個去找源碼的編譯安裝,過程較為繁瑣(不熟路的不推薦) 要…

工業大數據分析算法實戰-day05

文章目錄 day05分而治之中的MARS算法神經網絡逼近能力解釋 day05 今天是第5天,昨日從統計分析開始利用統計學的知識判斷當前樣本的分布以及估計總體的參數和假設檢驗的情況,以及介紹了線性回歸算法的相關優化點,但是畢竟線性回歸是線性劃分的…

在Ubuntu服務器上備份文件到自己的百度網盤

文章目錄 概述安裝bypy同步文件定時任務腳本 概述 之前自購了一臺阿里云服務器,系統鏡像為Ubuntu 22.04, 并且搭建了LNMP開發環境(可以參考:《Ubuntu搭建PHP開發環境操作步驟(保姆級教程)》)。由于項目運行中會產生附…

safe area helper插件

概述 顯示不同機型的必能顯示的區域 實現步驟 引入safearea,引入其中的safearea的csharp 為cancas加入gameobject gameobject中加入safearea腳本 將UI作為這個gameobject的子物體,就可以完成顯示

Unity 獲取鼠標點擊位置物體貼圖顏色

實現 Ray ray Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit hit)) {textureCoord hit.textureCoord;textureCoord.x * textureMat.width;textureCoord.y * textureMat.height;textureColor textureMat.GetPixel(Mathf.Flo…

基于深度學習的貓狗識別系統【深度學習課設】

🏆 作者簡介:席萬里 ? 個人網站:https://dahua.bloggo.chat/ ?? 一名后端開發小趴菜,同時略懂Vue與React前端技術,也了解一點微信小程序開發。 🍻 對計算機充滿興趣,愿意并且希望學習更多的技…

05、GC基礎知識

JVM程序在跑起來之后,在數據的交互過程中,就會有一些數據是過期不用的,這些數據可以看做是垃圾,JVM中,這些垃圾是不用開發者管的,它自己會有一套垃圾回收系統自動回收這些內存垃圾,以備后面繼續…

什么是戰略思想?

古今中外,關于戰略是什么?有非常多的理論,也有不同的視角。 中國最早的涉及戰略的書籍據傳是黃帝所著的《握奇文》,后有較為系統的兵法戰略書籍為周朝姜太公(亦稱姜尚、姜子牙等)所著的《六韜》&#xff0c…

2024.12.15 TCP/IP 網絡模型有哪幾層?(二)

2024.12.15 TCP/IP 網絡模型有哪幾層?(二) 上節課我們學習了網絡模型有四部分構成,有應用層、傳輸層、網絡層、網絡接口層。 生成了 IP 頭部之后,接下來要交給網絡接口層(Link Layer)在 IP 頭部的前面加上 MAC 頭部&#xff0c…

51c深度學習~合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/12750420 #傅里葉特征 (Fourier Feature)與核回歸 位置編碼背后的理論解釋 本文探討了位置編碼背后的理論基礎,特別是傅里葉特征(Fourier Feature)與核回歸(Kern…