1. 程式人生 > >1.spring系列之簡要概述

1.spring系列之簡要概述

esc 不依賴 切面 可能 tro 接受 校驗和 javabean 異常處理

一、什麽是Spring?


1.spring是一個開源框架,它是為簡化企業級應用開發而生,它是一個IOC或者稱之為DI和AOP容器框架。

2.Spring解決的是業務邏輯層和其他各層的松耦合問題,因此它將面向接口的編程思想貫穿整個系統應用。Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson創建。簡單來說,Spring是一個分層的JavaSE/EE full-stack(一站式) 輕量級開源框架。

二、Spring的框架特征


1.輕量級

輕量級指的不是這個框架的源碼大小,指的是該框架是非侵入性的,更詳細的說是我們使用Spring框架開發的應用可以不依賴Spring的API;

2.依賴註入(DI)&反轉控制(IOC)

依賴註入:即組件以一些預先定義好的方式,例如setter方法接受來自容器的資源註入;

反轉控制:反轉資源獲取的方向,傳統的資源查找方式是要求組件向容器請求查找資源,作為回應,容器適當適實的返回資源;而應用了IOC之後,則是容器主動地將資源推送給它管理的組件,組件所要做的僅僅是選擇一種合適的方式來接受資源。

3.AOP面向切面編程

我們都知道java是面向對象編程,即OOP(Object-Oriented Programming),而AOP是面向切面編程(Aspect-Oriented Programming),它是一種新的方法論,是對傳統的面向對象編程的一種補充。

4.容器

Spring包含並管理應用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創建---基於一個可配置原型(prototype),你的bean可以創建一個單獨的實例或者每次需要時都生成一個新的實例---以及它們是如何相互關聯的。

三、Spring的特點


1.方便解耦,簡化開發

通過Spring提供的IOC容器,我們可以將對象之間的依賴關系交由Spring進行控制,避免硬編碼所造成的過度程序耦合。有了Spring,用戶不必再為單實例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專註於上層的應用。 2.AOP編程的支持 通過Spring提供的AOP功能,方便進行面向切面的編程,許多不容易用傳統OOP實現的功能可以通過AOP輕松應付。 3.聲明式事務的支持 在Spring中,我們可以從單調煩悶的事務管理代碼中解脫出來,通過聲明式方式靈活地進行事務的管理,提高開發效率和質量。 4.方便程序的測試 可以用非容器依賴的編程方式進行幾乎所有的測試工作,在Spring裏,測試不再是昂貴的操作,而是隨手可做的事情。例如:Spring對Junit4支持,可以通過註解方便的測試Spring程序。 5.方便集成各種優秀框架 Spring不排斥各種優秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對各種優秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。 6.降低Java EE API的使用難度 Spring對很多難用的Java EE API(如JDBC,JavaMail,遠程調用等)提供了一個薄薄的封裝層,通過Spring的簡易封裝,這些Java EE API的使用難度大為降低。

四、Spring的模塊


Spring 框架是一個分層架構,由 7 個定義良好的模塊組成。Spring模塊構建在核心容器之上,核心容器定義了創建、配置和管理 bean 的方式,如圖所示:

技術分享圖片

組成Spring框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯合實現。

每個模塊的功能如下:

1、核心容器:核心容器提供 Spring 框架的基本功能(Spring Core)。核心容器的主要組件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉(IOC) 模式將應用程序的配置和依賴性規範與實際的應用程序代碼分開; 2、Spring 上下文:Spring 上下文是一個配置文件,向 Spring框架提供上下文信息。Spring 上下文包括企業服務,例如JNDI、EJB、電子郵件、國際化、校驗和調度功能; 3、Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向切面的編程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對象支持AOP。Spring AOP 模塊為基於 Spring 的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務管理集成到應用程序中; 4、Spring DAO:JDBCDAO抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同數據庫供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常代碼數量(例如打開和關閉連接)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構; 5、Spring ORM:Spring 框架插入了若幹個ORM框架,從而提供了 ORM 的對象關系工具,其中包括JDO、Hibernate和iBatisSQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構; 6、Spring Web 模塊:Web 上下文模塊建立在應用程序上下文模塊之上,為基於 Web 的應用程序提供了上下文。所以,Spring框架支持與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分請求以及將請求參數綁定到域對象的工作; 7、Spring MVC 框架:MVC框架是一個全功能的構建 Web應用程序的 MVC 實現。通過策略接口,MVC框架變成為高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。模型由javabean構成,存放於Map;視圖是一個接口,負責顯示模型;控制器表示邏輯代碼,是Controller的實現。Spring框架的功能可以用在任何J2EE服務器中,大多數功能也適用於不受管理的環境。Spring 的核心要點是:支持不綁定到特定 J2EE服務的可重用業務和數據訪問對象。毫無疑問,這樣的對象可以在不同J2EE 環境(Web 或EJB)、獨立應用程序、測試環境之間重用。

五、總結


以上部分引自百科並且加入一些個人的見解,初學者可能一開始不太明白,但是學到後面,再來看這些概念就能比較清晰了!

PS:有好意見或者其中有錯誤可以指出,一起互相學習。

1.spring系列之簡要概述