Spring的七個核心模塊

1、Spring core:核心容器
核心容器提供spring框架的基本功能。Spring以bean的方式組織和管理Java應用中的各個組件及其關係。Spring使用BeanFactory來產生和管理Bean,它是工廠模式的實現。BeanFactory使用控制反轉(IoC)模式將應用的配置和依賴性規範與實際的應用程序代碼分開。BeanFactory使用依賴注入的方式提供給組件依賴。主要實現控制反轉IoC和依賴注入DI、Bean配置以及加載。
2、Spring AOP:Spring面向切面編程

通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了Spring框架中。所以,可以很容易地使 Spring框架管理的任何對象支持 AOP。Spring AOP 模塊爲基於 Spring 的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務管理集成到應用程序中。AOP把一個業務流程分成幾部分,例如權限檢查、業務處理、日誌記錄,每個部分單獨處理,然後把它們組裝成完整的業務流程。每個部分被稱爲切面或關注點。

AOP的實現原理爲動態代理技術,一共有兩種代理模式:

(1)ProxyFactoryBean代理工廠對象

Spring內置代理類,引入一箇中間層,能夠創建不同類型的對象,利用它可以實現任何形式的AOP。

(2)TransactionProxyFactoryBean事務代理工廠對象

常用在數據庫編程上,Spring利用TransactionProxyFactoryBean對事務進行管理,在指定方法前利用AOP連接數據庫並開啓事務,然後在指定方法返回後利用AOP提交事務並斷開數據庫。

3、Spring context:Spring上下文
Spring上下文是一個配置文件,向Spring框架提供上下文信息。Spring上下文包括企業服務,如JNDI、EJB、電子郵件、國際化、校驗和調度功能。提供框架式Bean訪問方式,其他程序可以通過Context訪問Spring的Bean資源。
4、Spring DAO
DAO模塊主要目的是將持久層相關問題與一般的的業務規則和工作流隔離開來。Spring 中的DAO提供一致的方式訪問數據庫,不管採用何種持久化技術,Spring都提供一致的編程模型。Spring還對不同的持久層技術提供一致的DAO方式的異常層次結構。Spring的DAO模塊對JDBC進行了再封裝,隱藏了Connection、Statement、ResultSet等JDBC API,使DAO模塊直接繼承JdbcDaoSupport類。
5、Spring ORM(Object Relation Mapper)對象關係映射模塊
Spring 與所有的主要的ORM框架都集成的很好,包括hibernate、JDO實現、TopLink和IBatis SQL Map等。Spring爲所有的這些框架提供了模板之類的輔助類,達成了一致的編程風格。

Spring的ORM模塊對ORM框架如Hibernate等進行了封裝,Spring能夠管理、維護Hibernate,使用時可直接繼承HibernateDaoSupport類,該類內置一個HibernateTemplate。Hibernate的配置也轉移到Spring配置文件中。

(注:ORM是通過使用描述對象和數據庫之間映射的元數據,ORM框架採用元數據來描述對象--關係映射細節,元數據一般採用xml格式,並且存放在專門的對象--映射文件中)

6、Spring Web模塊

Web模塊建立在應用程序上下文模塊之上,爲基於Web的應用程序提供了上下文。Web層使用Web層框架,可選的,可以是Spring自己的MVC框架,或者提供的Web框架,如Struts、Webwork、tapestry和jsf。

Web模塊用於整合Web框架,將Web框架也納入Spring的管理之中。如Spring提供繼承方式與代理方式整合Struts,繼承方式不需要更改任何配置文件,只把Action繼承自ActionSupport即可,但會對Spring產生依賴。代理方式需要在struts-config.xml中配置<controller>,由Spring全盤代理,因此可以使用Spring的各種資源、攔截器等。

7、Spring MVC

MVC框架是一個全功能的構建Web應用程序的MVC實現。通過策略接口,MVC框架變成爲高度可配置的。Spring的MVC框架提供清晰的角色劃分:控制器、驗證器、命令對象、表單對象和模型對象、分發器、處理器映射和視圖解析器。Spring支持多種視圖技術。

Spring MVC 的工作流程:

(1) 客戶端發送請求,請求到達 DispatcherServlet 主控制器。
(2) DispatcherServlet 控制器調用 HandlerMapping 處理。
(3) HandlerMapping 負責維護請求和 Controller 組件對應關係。 HandlerMapping 根據請求調用對應的 Controller 組件處理。
(4) 執行 Controller 組件的業務處理,需要訪問數據庫,可以調用 DAO 等組件。
(5)Controller 業務方法處理完畢後,會返回一個 ModelAndView 對象。該組件封裝了模型數據和視圖標識。
(6)Servlet 主控制器調用 ViewResolver 組件,根據 ModelAndView 信息處理。定位視圖資源,生成視圖響應信息。
(7)控制器將響應信息給用戶輸出。   

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