當前位置:才華齋>計算機>java語言>

Java的Spring框架知識

java語言 閱讀(1.35W)

Spring是一個開源框架,於2003年興起的一個輕量級的Java 開發框架,下面我們來詳細瞭解一下Spring框架的基礎知識!

Java的Spring框架知識

  一. Spring框架的作用

輕量:Spring是輕量級的,基本的版本大小為2MB

控制反轉:Spring通過控制反轉實現了鬆散耦合,物件們給出它們的依賴,而不是建立或查詢依賴的物件們。

面向切面的程式設計AOP:Spring支援面向切面的程式設計,並且把應用業務邏輯和系統服務分開。

容器:Spring包含並管理應用中物件的生命週期和配置

MVC框架: Spring-MVC

事務管理:Spring提供一個持續的事務管理介面,可以擴充套件到上至本地事務下至全域性事務JTA

異常處理:Spring提供方便的API把具體技術相關的異常

  二. Spring的組成

Spring由7個模組組成:

Spring Core: 核心容器提供 Spring 框架的`基本功能。核心容器的主要元件是BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉 (IOC) 模式將應用程式的配置和依賴性規範與實際的應用程式程式碼分開。

Spring 上下文:Spring 上下文是一個配置檔案,向 Spring 框架提供上下文資訊。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和排程功能。

Spring AOP:通過配置管理特性,Spring AOP 模組直接將面向方面的程式設計功能整合到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何物件支援 AOP。Spring AOP 模組為基於 Spring 的應用程式中的物件提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 元件,就可以將宣告性事務管理整合到應用程式中。

Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同資料庫供應商丟擲的錯誤訊息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常程式碼數量(例如開啟和關閉連線)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。

Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的物件關係工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構。

Spring Web 模組:Web 上下文模組建立在應用程式上下文模組之上,為基於 Web 的應用程式提供了上下文。所以,Spring 框架支援與 Jakarta Struts 的整合。Web 模組還簡化了處理多部分請求以及將請求引數繫結到域物件的工作。

Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程式的 MVC 實現。通過策略介面,MVC 框架變成為高度可配置的,MVC 容納了大量檢視技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。

  三. Spring容器

Sping的容器可以分為兩種型別

1. BeanFactory:(Factory介面定義)是最簡答的容器,提供了基本的DI支援。最常用的BeanFactory實現就是XmlBeanFactory類,它根據XML檔案中的定義載入beans,該容器從XML檔案讀取配置元資料並用它去建立一個完全配置的系統或應用。

2. ApplicationContext應用上下文:(icationContext)基於BeanFactory之上構建,並提供面向應用的服務。

  四. ApplicationContext通常的實現

ClassPathXmlApplicationContext:從類路徑下的XML配置檔案中載入上下文定義,把應用上下文定義檔案當做類資源。

FileSystemXmlApplicationContext:讀取檔案系統下的XML配置檔案並載入上下文定義。

XmlWebApplicationContext:讀取Web應用下的XML配置檔案並裝載上下文定義。

1 ApplicationContext context = new ClassPathXmlApplicationContext("");

  五. IOC & DI

Inversion of Control, 一般分為兩種型別:依賴注入DI(Dependency Injection)和依賴查詢(Dependency Lookup).依賴注入應用比較廣泛。

Spring IOC扶著建立物件,管理物件(DI),裝配物件,配置物件,並且管理這些物件的整個生命週期。

優點:把應用的程式碼量降到最低。容器測試,最小的代價和最小的侵入性使鬆散耦合得以實現。IOC容器支援載入服務時的餓漢式初始化和懶載入。

DI依賴注入是IOC的一個方面,是個通常的概念,它有多種解釋。這概念是說你不用床架物件,而只需要描述它如何被建立。你不在程式碼裡直接組裝你的元件和服務,但是要在配置檔案裡描述元件需要哪些服務,之後一個IOC容器輔助把他們組裝起來。

IOC的注入方式:1. 構造器依賴注入;2. Setter方法注入。

  六. 如何給spring容器提供配置元資料

XML配置檔案

基於註解的配置

基於Java的配置@Configuration, @Bean

  七. bean標籤中的屬性:

id

name

class

init-method:Bean例項化後會立刻呼叫的方法

destory-method:Bean從容器移除和銷燬前,會呼叫的方法

factory-method:執行我們呼叫一個指定的靜態方法,從而代替構造方法來建立一個類的例項。

scope:Bean的作用域,包括singleton(預設),prototype(每次呼叫都建立一個例項), request,session, global-session(注意spring中的單例bean不是執行緒安全的)

autowired:自動裝配 byName, byType, constructor, autodetect(首先闡釋使用constructor自動裝配,如果沒有發現與構造器相匹配的Bean時,Spring將嘗試使用byType自動裝配)

  八. beans標籤中相關屬性

default-init-method

default-destory-method

default-autowire:預設為none,應用於Spring配置檔案中的所有Bean,注意這裡不是指Spring應用上下文,因為你可以定義多個配置檔案。