1. 程式人生 > >Spring框架學習總結

Spring框架學習總結

單獨使用 可維護 ava 設置 允許 servlet容器 spec 學習 ogr

1. 什麽是Spring框架?

  1.1 概念

    SpringFrameWork是輕量級容器,它可以使用Struts和webwork等眾多的web應用程序結合使用,也可以單獨使用。

  1.2 核心技術

    面向切面(aspect-oriented programming AOP)  控制反轉(inversion of control IOC)。

  1.3 特點

    輕量:不依賴於其他的對象,單獨使用容器:xml中設置聲明周期和配置。

     框架:系統中的對象通過xml文件配置組合起來的。

2. Spring框架由哪些模塊組成,模塊有哪些功能?

  2.1 Spring Core

    Core封裝包是框架的最基礎部分,提供IOC和依賴註入特性。基礎概念是:BeanFactory,它提供對Factory模式的經典實現來消除對程序性單例模式的需要,並真正地允許從程序邏輯中分離出依賴關系和配置。

  2.2 Spring Context

    構建於Core封裝包基礎上的Context封裝包,提供了一種框架式的對象訪問方法,有點像JNDI註冊器。Context封裝包的特性得自於Beans封裝包,並添加了對國際化(I18N)的支持(例如資源綁定),事件傳播,資源裝載方式和Context的透明創建,比如Servlet容器。

  2.3 Spring DAO

    DAO(Data Access Object)提供了JDBC抽象層,它可消除較長的JDBC編碼和解析數據庫產商特有的錯誤代碼。並且,JDBC封裝包還提供了一種比編程性更好的聲明性事務管理方法,不僅僅是實現了特定接口,而且對所有的POJOs(plain old Java object)都適用。

  2.4 Spring ORM

    ORM封裝包提供了常用的“對象/關系”映射APIs集成層。其中包括JPA、JDO、Hibernate和iBatis,利用ORM封裝包,可以混合使用所有Spring提供的特性進行“對象/關系”映射,如前面提到的簡單聲明性事物管理。

  2.5 Spring AOP

    AOP模塊是Spring的AOP庫,提供了AOP(攔截器)機制,並提供常用的攔截器,供用戶自定義和配置。

  2.6 Spring web

    web模塊提供對常見框架如Struts1,webwork(Struts2),jsf的支持,Spring能夠管理這些框架,將Spring的資源註入給框架,也能在這些框架的前後插入攔截器。

  2.7 Spring web MVC

    Spring中的MVC封裝包提供了web應用的Model-View-Controller(MVC)實現。Spring的MVC框架並不是僅僅提供一種傳統的 實現,它提供了一種清晰的分離模型,在領域模型代碼和web from之間。並且還可以借助Spring框架的其他特性。

3. 為什麽需要使用Spring?

  1.方便解耦,簡化開發

    通過Spring提供的IOC容器,可以將對象之間的依賴關系交由Spring進行控制,避免硬編碼造成的過度程序耦合。

  2.AOP編程的支持

    通過Spring提供的AOP功能,方便進行面向切面的編程,如性能監測,事務管理,日誌記錄等。

  3.聲明式事務的支持

  4.方便集成各種優秀框架

  5.降低java EE API的使用難度

    如對JDBC,JavaMail,遠程調用提供了簡便封裝

4. 什麽是IOC,為什麽使用IOC?

  IoC全稱Iversion of Controller,控制反轉。

    概念是說不用創建對象,而只需要描述它如何被創建。不在代碼裏直接組裝組件和服務,但是要在配置文件裏描述哪些組件需要哪些服務,之後一個容器(IOC)容器負責把他們組裝。

5. 什麽是AOP,為什麽使用AOP?

  AOP全稱aspect-oriented programming面向切面編程。

    AOP,面向切面編程,就是吧可重用的功能提取出來,然後將這些通用功能在合適的時織入到應用程序中,比如事務管理,權限控制,日誌記錄,性能統計等。

    AOP並沒有幫助我們解決任何新的問題,它只是提供了一種更好的辦法,能夠用最少的工作量來解決現有的一些問題,使得系統更加健壯,可維護性更好。

6. 什麽是Spring的事物管理?

  事務就是對一系列的數據庫操作(比如插入多條數據)進行統一的提交或者回滾操作,如果插入成功,那麽一起成功,如果中間有一條出現異常,那麽回滾之前的所有操作。這樣可以防止臟數據的出現,防止數據庫的數據發生錯誤。

  開發中為了避免這一種情況一般會進行事物管理。

  Spring的聲明式事務通常是指在配置文件中對事務進行配置聲明,其中包括很多聲明屬性,它是通過Spring Proxy幫做代理,自己不用額外的寫代碼,只要在Spring配置文件中聲明就好,通常用在數據庫的操作裏面。

  編程式事務就是指通過硬編碼的方式做事務處理,這種處理方式需要寫代碼,事務中的邏輯可以自己定制;可以是數據庫的東西,也可以是其他操作。

  Spring中也有自己的事務管理機制,一般是用TransactionMananger進行管理,可以通過Spring的註入來完成此功能。

7. Spring框架支持哪幾種bean作用域?

  singleton:默認值,bean在每個Spring ioc容器只有一個實例。

   prototype:一個bean的定義可以有多個實例。

   request:每次http請求都活創建一個bean,該作用域僅在基於web的spring ApplicationContext情形下有效。

   session:在一個HTTP Session中,一個人bean定義對應一個實例,該作用域僅在基於web的Spring ApplicationContext情形下有效。

8. Spring獲取連接池的幾種方式?

  1.DBCP 數據源

   2.C3P0 數據源

   3.Spring的數據源實現類(DriverManagerDataSource)

   4.獲取JNDI數據源

Spring框架學習總結