Spring 是一個(gè)開(kāi)源框架舔箭,是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)建的。框架的主要優(yōu)勢(shì)之一就是其分層架構(gòu)晤碘,分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為 J2EE 應(yīng)用程序開(kāi)發(fā)提供集成的框架功蜓。
在這篇由三部分組成的Spring 系列的第 1 部分中园爷,我將介紹 Spring 框架。我先從框架底層模型的角度描述該框架的功能式撼,然后將討論兩個(gè)最有趣的模塊:Spring 面向方面編程(AOP)和控制反轉(zhuǎn) (IOC) 容器童社。接著將使用幾個(gè)示例演示 IOC 容器在典型應(yīng)用程序用例場(chǎng)景中的應(yīng)用情況。這些示例還將成為本系列后面部分進(jìn)行的展開(kāi)式討論的基礎(chǔ)著隆,在本文的后面部分扰楼,將介紹 Spring 框架通過(guò) Spring AOP 實(shí)現(xiàn) AOP 構(gòu)造的方式。
Spring 框架
Spring 框架是一個(gè)分層架構(gòu)美浦,由 7 個(gè)定義良好的模塊組成弦赖。Spring 模塊構(gòu)建在核心容器之上,核心容器定義了創(chuàng)建抵代、配置和管理 bean 的方式腾节,如圖 1 所示。
圖 1. Spring 框架的 7 個(gè)模塊
組成 Spring 框架的每個(gè)模塊(或組件)都可以單獨(dú)存在,或者與其他一個(gè)或多個(gè)模塊聯(lián)合實(shí)現(xiàn)案腺。每個(gè)模塊的功能如下:
核心容器:核心容器提供 Spring 框架的基本功能庆冕。核心容器的主要組件是BeanFactory,它是工廠模式的實(shí)現(xiàn)劈榨。BeanFactory使用控制反轉(zhuǎn)(IOC) 模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開(kāi)访递。
Spring 上下文:Spring 上下文是一個(gè)配置文件,向 Spring 框架提供上下文信息同辣。Spring 上下文包括企業(yè)服務(wù)拷姿,例如 JNDI、EJB旱函、電子郵件响巢、國(guó)際化、校驗(yàn)和調(diào)度功能棒妨。
Spring AOP:通過(guò)配置管理特性踪古,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。所以券腔,可以很容易地使 Spring 框架管理的任何對(duì)象支持 AOP伏穆。Spring AOP 模塊為基于 Spring 的應(yīng)用程序中的對(duì)象提供了事務(wù)管理服務(wù)。通過(guò)使用 Spring AOP纷纫,不用依賴 EJB 組件枕扫,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。
Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結(jié)構(gòu)辱魁,可用該結(jié)構(gòu)來(lái)管理異常處理和不同數(shù)據(jù)庫(kù)供應(yīng)商拋出的錯(cuò)誤消息烟瞧。異常層次結(jié)構(gòu)簡(jiǎn)化了錯(cuò)誤處理,并且極大地降低了需要編寫(xiě)的異常代碼數(shù)量(例如打開(kāi)和關(guān)閉連接)商叹。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結(jié)構(gòu)燕刻。
Spring ORM:Spring 框架插入了若干個(gè) ORM 框架,從而提供了 ORM 的對(duì)象關(guān)系工具剖笙,其中包括 JDO卵洗、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務(wù)和 DAO 異常層次結(jié)構(gòu)弥咪。
Spring Web 模塊:Web 上下文模塊建立在應(yīng)用程序上下文模塊之上过蹂,為基于 Web 的應(yīng)用程序提供了上下文。所以聚至,Spring 框架支持與 Jakarta Struts 的集成酷勺。Web 模塊還簡(jiǎn)化了處理多部分請(qǐng)求以及將請(qǐng)求參數(shù)綁定到域?qū)ο蟮墓ぷ鳌?/p>
Spring MVC 框架:MVC 框架是一個(gè)全功能的構(gòu)建 Web 應(yīng)用程序的 MVC 實(shí)現(xiàn)。通過(guò)策略接口扳躬,MVC 框架變成為高度可配置的脆诉,MVC 容納了大量視圖技術(shù)甚亭,其中包括 JSP、Velocity击胜、Tiles亏狰、iText 和 POI。
Spring 框架的功能可以用在任何 J2EE 服務(wù)器中偶摔,大多數(shù)功能也適用于不受管理的環(huán)境暇唾。Spring 的核心要點(diǎn)是:支持不綁定到特定 J2EE 服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問(wèn)對(duì)象。毫無(wú)疑問(wèn)辰斋,這樣的對(duì)象可以在不同 J2EE 環(huán)境 (Web 或 EJB)策州、獨(dú)立應(yīng)用程序、測(cè)試環(huán)境之間重用宫仗。
更多詳細(xì)源碼參考來(lái)源:http://minglisoft.cn/technology?歡迎大家一起學(xué)習(xí)研究相關(guān)技術(shù)够挂,源碼獲取請(qǐng)加求求(企鵝):2042849237