二十3、Spring框架的相關知識點總結

一、Spring的優勢:

  1.一、Spring在大小和透明性方面是輕量級的,Spring框架大約只有2MB大小。web

  1.二、控制反轉(IOC):使用控制反轉技術實現了低耦合,依賴注入(DI)到對象,而不是建立或者尋找依賴的對象。spring

  1.三、面向切面編程(AOP):把應用的核心業務邏輯和周邊業務(切面業務)分開進行。數據庫

  1.四、容器:Spring包含並管理應用程序對象的配置和生命週期。(IOC容器負責建立對象,經過依賴注入管理對象,整合對象,配置對象以及管理對象的生命週期)編程

  1.五、MVC框架:SpringMVC很好的取代了一些web框架。安全

  1.六、事務管理:Spring對本地業務到全局業務(JAT)提供了統一的事務管理接口。session

  1.七、異常處理:Spring提供了一個方便的API將特定的異常(數據庫鏈接異常JDBC,Hibernate等拋出的)轉化爲一致性的,Unchecked異常。框架

二、核心容器BeanFactory和ApplicationContext

提供了Spring框架的基本功能。BeanFactory是Spring應用核心,可是經常使用的是ApplicationContext應用上下文。BeanFactory是基於工廠模式的一種實現。經過使用控制反轉(IOC)應用的配置和依賴注入將實際的應用代碼分離開發。性能

  2.一、應用上下文ApplicationContext的實現:prototype

    2.1.一、FileSystemXmlApplicationContext:容器加載XML文件中的beans的定義,xml中bean配置文件的完整路徑  必須傳遞給這個構造器。FileSystemXmlApplicationContext:容器也能夠加載XML文件中beans的定義,可是須要正確的  CLASSPATH路徑。線程

    2.1.二、WebXmlApplicationContext:架子啊xml文件,這些文件是定義了web應用中的beans

  2.2.BeanFactory和ApplicationContext的區別:

    2.2.1:ApplicationContext:提供了一種解決文檔信息的方法,一種加載文件資源的方式,還能夠監聽beans發送消息,以及容器中beans中的操做。這些必須經過BeanFactory工廠的變成方式處理的操做,能夠在ApplicationContext中以聲明的方式處理。ApplicationContext實現了MessageSource,這個接口用於獲取本地消息。

三、AOP

AOP模塊:是用來開發Spring應用程序中的切面業務部分。好比性能統計,日誌分析等。

四、抽象JDBC和DAO模塊

使用抽象JDBC和DAO模塊保證了數據庫鏈接代碼的簡潔簡單,同時也避免了因爲未能關閉數據庫資源引發的問題。

五、對象關係映射(ORM)模塊

Spring經過提供ORM模塊在JDBC的基礎上支持對象關係映射的框架,好比Hibernate,JDO,MyBatis等。Spring的事務管理能夠同時只是以上某種框架和JDBC。

六、依賴注入(DI)

依賴注入是控制反轉(IOC)一個層面的解釋。就是你不用建立對象而是隻須要描述一下如何建立他們,不須要經過代碼直接將Bean組件和Service服務鏈接在一塊,而是經過配置文件說明哪些Bean組件須要什麼服務,以後IOC容器負責銜接。

依賴注入的方式有三種:

  6.一、構造器依賴注入:經過構造器依賴注入在容器觸發構造器的時候完成,這個構造器有一系列的參數,每一個參數表明須要注入的對象。

  6.二、Setter方法依賴注入:首先容器觸發一個無參構造方法來實例化對象,以後容器調用bean中的Setter方法完成Setter方法依賴注入。

  6.三、屬性注入:經過在配置文件中,直接對屬性的值進行注入。

最好的選擇是使用構造器參數實現強制依賴注入,使用Setter方法實現可選的依賴注入。

七、Spring Beans

Spring Beans是構成Spring應用核心的JAVA對象。這些對象由IOC容器實例化,組裝,管理。這些對象經過容器中配置的元數據建立,使用XML文件中定義的建立。

Spring中建立的bean都是單例的,bean標籤中有一個屬性是singleton,若是爲true,說明這個bean是單例的,若是爲false,則說明這個bean是原型prototype的bean。singleton屬性默認是true。能夠認爲spring框架中所由的bean都是默認單例的bean。

八、Spring中支持bean的做用域

  8.一、singleton:單例方式存在

  8.二、prototype:原型方式存在,一個bean能夠定義多個實例

  8.三、request:每次HTTP請求都會建立一個新的bean,做用域只能在WebApplicationContext上下文環境中

  8.四、session:一個HttPSession定義一個bean,做用域只能在WebApplicationContext上下文環境中

  8.五、globalSession:同一個全局HttpSession定義一個bean,做用域只能在WebApplicationContext上下文環境中。

注:bean默認的scope屬性是singleton,並且Spring框架中的單例bean不是線程安全的。

WebApplicationContext:繼承了ApplicationContext,並添加了一些web應用程序須要的功能,和普通的ApplicationContext不一樣,它能夠用來處理主題樣式,也能夠找到相應的servlet。

九、在Spring中注入Java集合類

Spring提供有四種結合配置元素:

  9.一、list元素用來注入一系列的值,容許有相同的值

  9.二、set元素用來注入一系列的值,不容許有重複的值

  9.三、map用來注入一組鍵值對,鍵值能夠是任何類型的

  9.四、props能夠用來注入一組鍵值對,只不過鍵值都是String類型的

十、JdbcTemplate解釋:

JdbcTemplate提供了許多方法,爲數據庫交互提供了方便。執行寫好的SQL語句,提供自定義的數據庫錯誤處理功能。

十一、Spring能夠經過兩種方式訪問Hibernate

  11.一、使用HibernateTemplate的反轉控制以及回調方法

  11.二、繼承HibernateDAOSupport,並申請一個AOP攔截器結點。

相關文章
相關標籤/搜索