Spring(一):簡介

一、Spring是什麼?

struts2java

    是一種Web框架(jsp/action/actionform)spring

hibernate數據庫

    是orm框架,處於持久層編程

spring安全

    是容器框架,用於配置bean,並維護bean之間關係的框架。框架

beanjsp

    是java中的任何一種對象: javabean/service/action/數據源/dao模塊化

ioc (Inverse of control)控制反轉工具

    1996年,Michael Mattson在一篇有關探討面向對象框架的文章中,首先提出了IOC 這個概念。IOC理論提出的觀點:藉助於「第三方」實現具備依賴關係的對象之間的解耦。,所有對象的控制權所有上繳給「第三方」IOC容器,因此,IOC容器成了整個系統的關鍵核心,它起到了一種相似「粘合劑」的做用,把系統中的全部對象粘合在一塊兒發揮做用。spa

    控制反轉爲了解決對象之間耦合度太高的問題。

    不建立對象,可是描述建立它們的方式(setter或構造器)。在代碼中不直接與對象和服務鏈接,但在配置文件中描述哪個組件須要哪一項服務。它爲相互依賴的組件提供抽象,將依賴(底層模塊)對象的得到交給第三方(系統)來控制,即依賴對象不在被依賴模塊的類中直接經過new來獲取。

    控制權的轉移,應用程序自己不負責依賴對象的建立和維護,而是由外部容器負責建立和維護。

    假設對象A依賴於對象B,那麼對象A在初始化或者運行到某一點的時候,本身必須主動去建立對象B或者使用已經建立的對象B。不管是建立仍是使用對象B,控制權都在本身手上。因爲IOC容器的加入,對象A與對象B之間失去了直接聯繫,因此,當對象A運行到須要對象B的時候,IOC容器會主動建立一個對象B注入到對象A須要的地方。

di (dependency injection)依賴注入

    IoC的一種實現方式,用來反轉依賴(IoC的具體實現方式),就是將依賴對象的建立和綁定轉移到被依賴對象類的外部來實現。建立對象而且組裝對象之間的關係。

    經過DI,對象的依賴關係將由負責協調系統中各個對象的第三方組件在建立對象時設定。對象無需自行建立或者管理它們的依賴關係——依賴關係將被自動注入到須要它們的對象中去。

    依賴最大的好處就是鬆耦合

    2004年,Martin Fowler探討了同一個問題,既然IOC是控制反轉,那麼究竟是「哪些方面的控制被反轉了呢?」,通過詳細地分析和論證後,他得出了答案:「得到依賴對象的過程被反轉了」。控制被反轉以後,得到依賴對象的過程由自身管理變爲了由IOC容器主動注入。因而,他給「控制反轉」取了一個更合適的名字叫作「依賴注入(Dependency Injection)」。他的這個答案,實際上給出了實現IOC的方法:注入。所謂依賴注入,就是由IOC容器在運行期間,動態地將某種依賴關係注入到對象之中。

    因此,依賴注入(DI)和控制反轉(IOC)是從不一樣的角度的描述的同一件事情,就是指經過引入IOC容器,利用依賴關係注入的方式,實現對象之間的解耦

http://blog.csdn.net/m13666368773/article/details/7802126

AOP面向切面

    AOP主要是實現高內聚,從而使得組件更加關注自身業務。將安全、事務以及日誌等系統服務與核心業務邏輯進行分離,使這些服務模塊化,並經過聲明的方式將它們應用到須要影響的組件中去。

 

Spring是一個輕量級的控制反轉(IoC)和麪向切面(AOP)的容器框架 

    - 從大小與開銷方面而言Spring都是輕量的

    - 經過控制反轉(IoC)的技術達到鬆耦合的目的

    - 提供了面向切面編程的豐富支持,容許經過分離應用的業務邏輯與系統服務進行內聚性的開發(如:業務邏輯-商品管理中的入庫與出庫,系統服務-入庫出庫操做中涉及的日誌管理與事務處理等與業務無關的)

    - Spring包含並管理應用對象的配置和生命週期,這個意義上是一種容器

    - Spring將簡單的組件配置組合成爲更復雜的應用,這個意義上是一種框架

 

二、Spring框架的7個模塊

Spring 框架圖示

組成 Spring 框架的每一個模塊(或組件)均可以單獨存在,或者與其餘一個或多個模塊聯合實現。每一個模塊的功能以下:

  • 核心容器:核心容器提供 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。

 

  • 核心容器Core Container

        容器是Spring框架最核心的部分,它負責Spring應用中的Bean建立、配置和管理。包括Bean工廠和應用上下午ApplicationContext,全部的Spring模塊都構建於核心容器之上。

  • AOP模塊

    AOP模塊是Spring應用系統開發切面的基礎。與DI同樣,AOP能夠幫助應用對象解耦。

  • 數據訪問與集成Data Access/ Integration

    使用JDBC編寫代碼一般會致使大量的樣板式模塊,例如數據庫鏈接、建立語句、處理結果集、關閉鏈接。該模塊封裝了這些樣板式代碼。集成了許多ORM框架。

  • Web和遠程調用

    MVC模式已被廣泛的接受爲一種構建Web應用的方法,它有助於將用戶界面邏輯與應用邏輯分離。

相關文章
相關標籤/搜索