為什么 SPRing 這么了不起?
Spring 的創(chuàng)立者 Rod Johnson 以一種批判的眼光看待 java™ 企業(yè)軟件開發(fā),并且提議很多企業(yè)難題都能夠通過戰(zhàn)略地使用 IOC 模式(也稱作依靠注入)來解決。當(dāng) Rod 和一個具有奉獻(xiàn)精神的開放源碼開發(fā)者團(tuán)隊將這個理論應(yīng)用于實踐時,結(jié)果就產(chǎn)生了 Spring 框架。簡言之,Spring 是一個輕型的容器,利用它可以使用一個外部 xml 配置文件方便地將對象連接在一起。每個對象都可以通過顯示一個 JavaBean 屬性收到一個到依靠對象的引用,留給您的簡單任務(wù)就只是在一個 XML 配置文件中把它們連接好。
IOC 和 Spring
IOC 是一種使應(yīng)用程序邏輯外在化的設(shè)計模式,所以它是被注入而不是被寫入客戶機(jī)代碼中。將 IOC 與接口編程應(yīng)用結(jié)合,就像 Spring 框架那樣,產(chǎn)生了一種架構(gòu),這種架構(gòu)能夠減少客戶機(jī)對特定實現(xiàn)邏輯的依靠。請參閱 參考資料 了解更多關(guān)于 IOC 和 Spring 的信息。
依靠注入是一個強(qiáng)大的特性,但是 Spring 框架能夠提供更多特性。Spring 支持可插拔的事務(wù)治理器,可以給您的事務(wù)處理提供更廣泛的選擇范圍。它集成了領(lǐng)先的持久性框架,并且提供一個一致的異常層次結(jié)構(gòu)。Spring 還提供了一種使用面向方面代碼代替正常的面向?qū)ο蟠a的簡單機(jī)制。
Spring AOP 答應(yīng)您使用攔截器 在一個或多個執(zhí)行點上攔截應(yīng)用程序邏輯。加強(qiáng)應(yīng)用程序在攔截器中的日志記錄邏輯會產(chǎn)生一個更可讀的、實用的代碼基礎(chǔ),所以攔截器廣泛用于日志記錄。您很快就會看到,為了處理橫切關(guān)注點,Spring AOP 發(fā)布了它自己的攔截器,您也可以編寫您自己的攔截器。
整合 Struts 和 Spring
與 Struts 相似,Spring 可以作為一個 MVC 實現(xiàn)。這兩種框架都具有自己的優(yōu)點和缺點,盡管大部分人同意 Struts 在 MVC 方面仍然是最好的。很多開發(fā)團(tuán)隊已經(jīng)學(xué)會在時間緊迫的時候利用 Struts 作為構(gòu)造高品質(zhì)軟件的基礎(chǔ)。Struts 具有如此大的推動力,以至于開發(fā)團(tuán)隊寧愿整合 Spring 框架的特性,而不愿意轉(zhuǎn)換成 Spring MVC。沒必要進(jìn)行轉(zhuǎn)換對您來說是一個好消息。Spring 架構(gòu)答應(yīng)您將 Struts 作為 Web 框架連接到基于 Spring 的業(yè)務(wù)和持久層。最后的結(jié)果就是現(xiàn)在一切條件都具備了。
在接下來的小竅門中,您將會了解到三種將 Struts MVC 整合到 Spring 框架的方法。我將揭示每種方法的缺陷并且對比它們的優(yōu)點。 一旦您了解到所有三種方法的作用,我將會向您展示一個令人興奮的應(yīng)用程序,這個程序使用的是這三種方法中我最喜歡的一種。
三個小竅門
接下來的每種整合技術(shù)(或者竅門)都有自己的優(yōu)點和特點。我偏愛其中的一種,但是我知道這三種都能夠加深您對 Struts 和 Spring 的理解。在處理各種不同情況的時候,這將給您提供一個廣闊的選擇范圍。方法如下:
ActionSupport 類整合 StrUCts DelegatingRequestProcessor 覆蓋 Struts 的 RequestProcessor Action 治理委托給 Spring 框架 裝載應(yīng)用程序環(huán)境
無論您使用哪種技術(shù),都需要使用 Spring 的 ContextLoaderPlugin 為 Struts 的 ActionServlet 裝載 Spring 應(yīng)用程序環(huán)境。就像添加任何其他插件一樣,簡單地向您的 struts-config.xml 文件添加該插件,如下所示:
<plug-in className= "org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property= "contextConfigLocation" value="/WEB-INF/beans.xml"/> </plug-in> 前面已經(jīng)提到過,在 下載 部分,您能夠找到這三個完全可使用的例子的完整源代碼。每個例子都為一個書籍搜索應(yīng)用程序提供一種不同的 Struts 和 Spring 的整合方法。您可以在這里看到例子的要點,但是您也可以下載應(yīng)用程序以查看所有的細(xì)節(jié)。
新聞熱點
疑難解答