【Spring實戰學習筆記】第1章 Spring 之旅

Spring可以做很多事情,它爲企業級開發提供給了豐富的功能,但是這些功能的底層都依賴於它的兩個核心特性,也就是:

  • 依賴注入(dependency injection,DI)
  • 面向切面編程(aspect oriented programming,AOP)

 

通過依賴注入DI,對象的依賴關係由系統中負責協調各對象的第三方組建在創建對象的時候進行設定。對象無需自行創建和管理它們的依賴關係。

 

如果一個對象只通過接口(而不是具體實現類或初始化過程)來表明依賴關係,那麼這種依賴就可以在對象毫不知情的情況下,用不同的具體實現進行替換。這也就是DI帶來的最大利益——鬆耦合。

 

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

Spring有多種裝配bean的方式,採用XML是很常見的一種裝配方式

另外還可以使用Java來描述配置(@Configuration和@bean)

 

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

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

 

藉助AOP,可以使用各種功能層去包裹核心業務層。這些層以聲明的方式靈活地應用到系統中,你的核心應用甚至根本不知道它們的存在。這是一個非常強大的理念,可以將安全、事務和日誌關注點與核心業務邏輯相分離。

 

一個簡單的AOP示例是,給業務邏輯實現某種監聽,這種監聽可以在業務邏輯執行之前實現某些功能,可以在業務邏輯執行之後也實現某些功能。一個簡單的AOP示例是:

 

在基於Spring的應用中,你的應用對象生存於Spring容器(container)中。Spring容器負責創建對象,裝配它們,配置它們並管理它們的整個生命週期,從生存到死亡(在這裏,可能就是new到finalize())

 

容器是Spring框架的核心。Spring容器使用DI管理構成應用的組件,它會創建相互協作的組件之間的關聯。Spring自帶了多個容器實現,可以歸爲兩種不同的類型。

  • bean工廠(由org.springframework.beans.factory.BeanFactory接口定義)是最簡單的容器,提供基本的DI支持。
  • 應用上下文(由org.springframework.context.ApplicationContext接口定義)基於BeanFactory構建,並提供應用框架級別的服務(有多種不同的應用上下文實現,基於文件配置的,基於類配置的)

 

bean的生命週期:

 

Spring框架由6個定義良好的模塊分類組成:

 

關於 spring boot:

Spring極大地簡化了衆多的編程任務,減少甚至消除了很多樣板式代碼,如果沒有Spring的話,在日常工作中你不得不編寫這樣的樣板代碼。SpringBoot是一個嶄新的令人興奮的項目,它以Spring的視角,致力於簡化Spring本身。SpringBoot大量依賴於自動配置技術,它能夠消除大部分(在很多場景中,甚至是全部)Spring配置。它還提供了多個Starter項目,不管你使用Maven還是Gradle,這都能減少Spring工程構建文件的大小。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章