新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 對(duì)于Struts和Spring兩種MVC框架的比較

對(duì)于Struts和Spring兩種MVC框架的比較

作者: 時(shí)間:2009-07-30 來(lái)源:網(wǎng)絡(luò) 收藏


注意看到Main里面需要用到Demo的實(shí)例,因此,需要硬編碼,即靜態(tài)綁定(在編譯期間就需要綁定),這絕對(duì)會(huì)增大后期維護(hù)工作量,至少每次擴(kuò)展或者修改類(lèi)以后需要重新編譯已存在的iavabean組件。
的依賴注入有機(jī)會(huì)實(shí)現(xiàn)動(dòng)態(tài)綁定,原理很簡(jiǎn)單,用到了接口,接口是不能生成實(shí)例的,再加上iava的多態(tài),接口可指向它的實(shí)現(xiàn)類(lèi)。

所以試著為bean添加一個(gè)接口


}
注意看加重部分,用提供的兩個(gè)類(lèi),BeanFactory,和xmhxxxxx,直接讀取配置文件。然后用getBean(id);取得bean,這個(gè)時(shí)候返回的對(duì)象是范型,比如Object obj=beanFac-tory.getBean(demo);將改后的寫(xiě)在下面,但沒(méi)測(cè)試過(guò)。
這樣就解耦了,實(shí)現(xiàn)無(wú)侵入式。不要忘記要將需要的bean在配置文件里面聲明。
所有這些特征使編寫(xiě)更干凈、更易管理、并且更易于測(cè)試的代碼。也為Spring中的各種子框架提供了基礎(chǔ)。


4 結(jié)語(yǔ)
人們?nèi)找鎸?duì)開(kāi)源框架的重視.使得很多項(xiàng)目的成本大大降低,并且投放使用以及維護(hù)速度都增加了?,F(xiàn)在的開(kāi)源框架都有很高的質(zhì)量,提供了很好的文檔,一些書(shū)籍讓開(kāi)發(fā)者做參考。即便如此,兩大因素使得J2EE領(lǐng)域充滿了不確定性:開(kāi)源領(lǐng)域和J2EE“標(biāo)準(zhǔn)”的沖突和AOP的日益重要。
開(kāi)源和標(biāo)準(zhǔn)之間的沖突表現(xiàn)在兩個(gè)方面。一個(gè)是表現(xiàn)層,JSF的身后有Sun公司和其他的一些大公司,而在這個(gè)領(lǐng)域有等開(kāi)源產(chǎn)品與之競(jìng)爭(zhēng)。在中間層,EJB3.0采用J2SE5.0的annotations實(shí)現(xiàn)了依賴注入(dependency iniection)的功能,但這個(gè)功能只是Spring的一個(gè)子集。
在這兩個(gè)領(lǐng)域,開(kāi)源產(chǎn)品都更加革新。JSP借鑒了ASP.NET,而Tapestry則采用了WebObjects的思想。
同樣的,不知道EJB3.0為何要嘗試著標(biāo)準(zhǔn)化依賴注入,即使這樣會(huì)使之不可避免地喪失很多功能。EJB 3.0也要進(jìn)入程序編寫(xiě)領(lǐng)域,而J2EE規(guī)范在這方面還沒(méi)有涉足。
于此同時(shí),AOP的重要性在J2EE社區(qū)猛增,在使用上,AOP也越來(lái)越受到開(kāi)發(fā)者的青睞。像Spring、dynaop等被稱作“帶著雙拐的AOP”實(shí)現(xiàn),提升了AOP的知名度。而純粹的AOP技術(shù)比如AspectJ,在將來(lái)的幾年也會(huì)流行起來(lái)。
其次,JBoss通過(guò)JCP和EJB3.0保持一致,它極大地推動(dòng)了AOP技術(shù)。但即使如此,JCP還沒(méi)有轉(zhuǎn)向AOP跡象。
下一代的J2EE規(guī)范將擁抱更簡(jiǎn)單的POJ0編程模型,就像Spring和Hibermate做的一樣。J2EE開(kāi)發(fā)者也注定要從“欺詐客戶”轉(zhuǎn)到以自己的編程經(jīng)驗(yàn)開(kāi)發(fā)。這次改變將受到大多數(shù)人的歡迎,不像以前那樣每一個(gè)新規(guī)范發(fā)布后,最終都沒(méi)有能很好的實(shí)現(xiàn)。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Struts Spring MVC 比較

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉