Spring實戰 讀書筆記 1.Spring之旅

来源:https://www.cnblogs.com/jdzhang/archive/2019/07/15/11186634.html
-Advertisement-
Play Games

1.引言 2.關於本書 3.依賴註入和應用切麵 4.容納你的bean 5.spring各個版本的特性 1.引言 如上篇博客所述,打算從Spring作為學習java的切入點,那我們開始吧。 2.關於本書 本書分為4個部分: 2.1 第1部分 介紹Spring容器,以及Spring框架的核心 依賴註入和 ...


1.引言

2.關於本書

3.依賴註入和應用切麵

4.容納你的bean

5.spring各個版本的特性

 

1.引言

如上篇博客所述,打算從Spring作為學習java的切入點,那我們開始吧。

 

2.關於本書

本書分為4個部分:

2.1 第1部分 介紹Spring容器,以及Spring框架的核心 依賴註入和麵向切麵編程

2.2 第2部分 如何使用Spring來構建web應用程式

2.3 第3部分 關註如何處理和持久化數據

2.4 最後一部分 介紹如何將Spring應用程式與其他系統進行集成

 

3.依賴註入和應用切麵

3.1 裝配的概念

創建應用組件之間協作的行為通常稱為裝配(wiring)。

 

3.2 介紹了Spring裝配bean的兩種方式

3.2.1 基於xml的配置

3.2.2 基於java的配置

 

3.3 如何裝配bean的

Spring通過應用上下文(Application Context)裝載bean的定義並把它們組裝起來。

Spring應用上下文全權負責對象的創建和組裝。

Spring自帶多種應用上下文的實現,它們之間的主要區別在於如何裝載配置

 

3.4.DI和AOP的好處

DI能夠讓相互協作的軟體組件保持鬆散耦合

AOP允許你把遍佈應用各處的功能分離出來形成可重用的組件,從而使應用具有更高的內聚性並且更加關註自身的業務

詳見:

淺談IOC

也說AOP

 

4.容納你的bean

4.1 Spring容器

Spring容器負責創建對象,裝配它們,配置它們並管理它們的整個生命周期。

Spring容器有兩種類型:

bean工廠(由org.springframework.beans.factory.BeanFactory介面定義),提供基本的DI支持

應用上下文(由org.springframework.context.ApplicationContext介面定義),基於BeanFactory創建,並提供應用框架級別的服務

 

4.2 Spring自帶的常用應用上下

  • AnnotationConfigApplicationContext:從一個或多個基於java的配置類中載入Spring應用上下文
  • AnnotationConfigWebApplicationContext:從一個或多個基於java的配置類中載入Spring Web應用上下文
  • ClassPathXmlApplicationContext:從類路徑下的從一個或多個xml配置文件中載入上下文定義,把應用上下文的定義文件作為類資源
  • FileSystemXmlApplicationContext:從文件系統下的一個或多個xml配置文件中載入上下文定義
  • XmlWebApplicationContext:從web應用下的一個或多個xml配置文件中載入上下文定義

4.3 bean的生命周期

  1. Spring對bean進行實例化
  2. Spring將值和bean的引用註入到bean對應的屬性中
  3. 如果bean實現了BeanNameAware介面,Spring將bean的ID傳遞給setBeanName()方法
  4. 如果bean實現了BeanFactoryAware介面,Spring將調用setBeanFactory()方法,將BeanFactory容器實例傳入
  5. 如果bean實現了ApplicationContextAware介面,Spring將調用SetApplicationContext()方法,將bean所在的應用上下文的應用傳入進來
  6. 如果bean實現了beanPostProcessor介面,Spring將調用它們的postProcessBeforeInitialization()方法
  7. 如果bean實現了InitializingBean介面,Spring將調用它們的afterPropertiesSet()方法,類似的,如果bean使用init-method聲明初始化方法,該方法也會被調用
  8. 如果bean實現了BeanPostProcessor介面,Spring將調用它們的PostProcessAfterInitialization()方法
  9. 此時,bean已經準備就緒了,可以被應用程式使用了,它們將一直駐留在應用上下文中,直到應用上下文被銷毀
  10. 如果bean實現了DisposableBean介面,Spring將調用它的destroy()介面犯法,同樣,如果bean使用了destroymethod聲明瞭銷毀方法,該方法也會被調用

5. spring各個版本的特性

這裡暫時只記錄我接觸的一些內容

Spring 3.2中

RestTemplate和@RestMapping可以支持HTTP PATCH方法;

@Autowired,@Value和@Bean註解能夠作為元註解,用於創建自定義的註入和bean聲明註解;

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 背景圖:(相關驗證代碼請查看代碼,在驗證時需將當前不需要驗證的代碼註釋掉) 1.inherit:從父元素繼承屬性設置 2.background-repeat:平鋪(在圖片大小小於元素尺寸時背景圖預設平鋪): no-repeat:取消預設平鋪 repeat-x:橫向平鋪 repeat-y:縱向平鋪 3 ...
  • 本文從JS是單線程開始,到JS為了提高效率,使用非同步,到JS如何實現非同步,再到瀏覽器是如何配合JS執行非同步。最後提到了一個任務隊列的優先順序問題。 ...
  • 學習本姿勢需要電腦裝有node,vue-cli相關環境,以及要有node,express,koa,vue相關基礎 本文相關demo的github地址: 一 Graphql概述 它是什麼?從哪裡來?要乾什麼? 簡單地講,對於前端,它就是讓你舒舒服服發請求的 嚴格的說,它是一種api設計思想,用來取代r ...
  • 最近在準備專升本,抽一點時間敷衍一下大家!!!嘿嘿嘿!!! 話不多說,上代碼: [註]在正則表達式中,^ 在 [] 中代表否定,在這個練習中意思就是:只要不是 ^ 和 數字,當鍵盤輸入抬起後,會自動替換為沒有,現象即自動會退回 放假了,也要抽點時間學習呀~~~~ ...
  • 前言:關於 JS 中為數組定義的迭代方法,我最開始是在《JavaScript高級程式設計》中學習的,然後。。。我並沒有看懂,後來翻閱各個大佬的博客,稍微理解了那麼一丟丟。以下就是我的一點見解。 首先,我們需要知道數組中的迭代方法都有哪些,列舉出來分別是:every、some、filter、map、f ...
  • 思路分析: 在angularJS中,我們可以使用ng-checked="expression()"來設置覆選框的狀態;當expression()返回true時,該覆選框為選擇中狀態,反之為非選中狀態; 實現步驟: 1.在baseController.js中編寫代碼如下:(由於該方法使用頻率較高,所以 ...
  • 一、前言 在之前學習 Vue 基礎知識點的文章中,我們還是採用傳統的方式,通過在 html 頁面上引用 vue.js 這個文件,從而將 Vue 引入到我們的項目開發中。伴隨著 Node.js 的出現,以及 React、Angular、Vue 這類的前端 MVVM 框架的發展,前端越來越像後端靠攏,前 ...
  • 1. (1)python下多線程的限制以及多進程中傳遞參數的方式 python多線程有個全局解釋器鎖(global interpreter lock),這個鎖的意思是任一時間只能有一個線程使用解釋器,跟單cpu跑多個程式一個意思,大家都是輪著用的,這叫“併發”,不是“並行”。 多進程間共用數據,可以 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...