新聞中心

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

對于Struts和Spring兩種MVC框架的比較

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


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

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


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


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


上一頁 1 2 下一頁

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

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉