<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    peace嘮叨

    人生得意須盡歡,莫斯金樽空對月。

    為什么需要Spring

    原文出處:http://blog.csdn.net/hudie1234567/article/details/6274305

    為什么需要Spring
      你可能正在想“Spring不過是另外一個的framework”。當(dāng)已經(jīng)有許多開放源代碼(和專有) J2EE framework時,我們?yōu)槭裁催€需要Spring Framework? 
      Spring是獨(dú)特的,因為若干個原因: 
      ◆它定位的領(lǐng)域是許多其他流行的framework沒有的。Spring關(guān)注提供一種方法管理你的業(yè)務(wù)對象。 
      ◆ Spring是全面的和模塊化的。Spring有分層的體系結(jié)構(gòu),這意味著你能選擇使用它孤立的任何部分,它的架構(gòu)仍然是內(nèi)在穩(wěn)定的。因此從你的學(xué)習(xí)中,你可得到最大的價值。例如,你可能選擇僅僅使用Spring來簡單化JDBC的使用,或用來管理所有的業(yè)務(wù)對象。 
      ◆它的設(shè)計從底部幫助你編寫易于測試的代碼。Spring是用于測試驅(qū)動工程的理想的framework。 
      Spring對你的工程來說,它不需要一個以上的framework。Spring是潛在地一站式解決方案,定位于與典型應(yīng)用相關(guān)的大部分基礎(chǔ)結(jié)構(gòu)。它也涉及到其他framework沒有考慮到的內(nèi)容。

    Spring帶給我們什么
      ◆方便解耦,簡化開發(fā)
      通過Spring提供的IoC容器,我們可以將對象之間的依賴關(guān)系交由Spring進(jìn)行控制,避免硬編碼所造成的過度程序耦合。有了Spring,用戶不必再為單實例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專注于上層的應(yīng)用。
      ◆AOP編程的支持
      通過Spring提供的AOP功能,方便進(jìn)行面向切面的編程,許多不容易用傳統(tǒng)OOP實現(xiàn)的功能可以通過AOP輕松應(yīng)付。
      ◆聲明式事務(wù)的支持
      在Spring中,我們可以從單調(diào)煩悶的事務(wù)管理代碼中解脫出來,通過聲明式方式靈活地進(jìn)行事務(wù)的管理,提高開發(fā)效率和質(zhì)量。
      ◆方便程序的測試
      可以用非容器依賴的編程方式進(jìn)行幾乎所有的測試工作,在Spring里,測試不再是昂貴的操作,而是隨手可做的事情。
      ◆方便集成各種優(yōu)秀框架
      Spring不排斥各種優(yōu)秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對各種優(yōu)秀框架(如Struts,Hibernate、Hession、Quartz)等的直接支持。
      ◆降低Java EE API的使用難度
      Spring對很多難用的Java EE API(如JDBC,JavaMail,遠(yuǎn)程調(diào)用等)提供了一個薄薄的封裝層,通過Spring的簡易封裝,這些Java EE API的使用難度大為降低。
      ◆Java 源碼是經(jīng)典學(xué)習(xí)范例
      Spring的源碼設(shè)計精妙、結(jié)構(gòu)清晰、匠心獨(dú)用,處處體現(xiàn)著大師對Java設(shè)計模式靈活運(yùn)用以及對Java技術(shù)的高深造詣。Spring框架源碼無疑是Java技術(shù)的最佳實踐范例。如果想在短時間內(nèi)迅速提高自己的Java技術(shù)水平和應(yīng)用開發(fā)水平,學(xué)習(xí)和研究Spring源碼將會使你收到意想不到的效果。

     

    Spring框架的好處
      在我們進(jìn)入細(xì)節(jié)以前,讓我們看一下Spring可以給一個工程帶來的一些好處: 
      ◆Spring能有效地組織你的中間層對象,無論你是否選擇使用了EJB。如果你僅僅使用了Struts或其他的包含了J2EE特有APIs的framework,你會發(fā)現(xiàn)Spring關(guān)注了遺留下的問題,。 
      ◆Spring能消除在許多工程上對Singleton的過多使用。根據(jù)我的經(jīng)驗,這是一個主要的問題,它減少了系統(tǒng)的可測試性和面向?qū)ο筇匦浴?nbsp;
      ◆Spring能消除使用各種各樣格式的屬性定制文件的需要,在整個應(yīng)用和工程中,可通過一種一致的方法來進(jìn)行配置。曾經(jīng)感到迷惑,一個特定類要查找迷幻般的屬性關(guān)鍵字或系統(tǒng)屬性,為此不得不讀Javadoc乃至源編碼嗎?有了Spring,你可很簡單地看到類的JavaBean屬性。倒置控制的使用(在下面討論)幫助完成這種簡化。 
      ◆Spring能通過接口而不是類促進(jìn)好的編程習(xí)慣,減少編程代價到幾乎為零。 
      ◆Spring被設(shè)計為讓使用它創(chuàng)建的應(yīng)用盡可能少的依賴于他的APIs。在Spring應(yīng)用中的大多數(shù)業(yè)務(wù)對象沒有依賴于Spring。 
      ◆使用Spring構(gòu)建的應(yīng)用程序易于單元測試。 
      ◆Spring能使EJB的使用成為一個實現(xiàn)選擇,而不是應(yīng)用架構(gòu)的必然選擇。你能選擇用POJOs或local EJBs來實現(xiàn)業(yè)務(wù)接口,卻不會影響調(diào)用代碼。 
      ◆Spring幫助你解決許多問題而無需使用EJB。Spring能提供一種EJB的替換物,它們適于許多web應(yīng)用。例如,Spring能使用AOP提供聲明性事務(wù)而不通過使用EJB容器,如果你僅僅需要與單個的數(shù)據(jù)庫打交道,甚至不需要JTA實現(xiàn)。 
      ■Spring為數(shù)據(jù)存取提供了一致的框架,不論是使用JDBC或O/R mapping產(chǎn)品(如Hibernate)。 
      Spring確實使你能通過最簡單可行的解決辦法解決你的問題。這些特性是有很大價值的。 
      總結(jié)起來,Spring有如下優(yōu)點:
      ◆低侵入式設(shè)計,代碼污染極低
      ◆ 獨(dú)立于各種應(yīng)用服務(wù)器,可以真正實現(xiàn)Write Once,Run Anywhere的承諾
      ◆Spring的DI機(jī)制降低了業(yè)務(wù)對象替換的復(fù)雜性
      ◆Spring并不完全依賴于Spring,開發(fā)者可自由選用Spring框架的部分或全部

     

    Spring能做什么
      Spring提供許多功能,在此我將快速地依次展示其各個主要方面。 
      首先,讓我們明確Spring范圍。盡管Spring覆蓋了許多方面,但我們已經(jīng)有清楚的概念,它什么應(yīng)該涉及和什么不應(yīng)該涉及。
      Spring的主要目的是使J2EE易用和促進(jìn)好編程習(xí)慣。 
      Spring不重新開發(fā)已有的東西。因此,在Spring中你將發(fā)現(xiàn)沒有日志記錄的包,沒有連接池,沒有分布事務(wù)調(diào)度。這些均有開源項目提供(例如Commons Logging 用來做所有的日志輸出,或Commons DBCP用來作數(shù)據(jù)連接池),或由你的應(yīng)用程序服務(wù)器提供。因為同樣的的原因,我們沒有提供O/R mapping層,對此,已有有好的解決辦法如Hibernate和JDO。
      Spring的目標(biāo)是使已存在的技術(shù)更加易用。
      例如,盡管我們沒有底層事務(wù)協(xié)調(diào)處理,但我們提供了一個抽象層覆蓋了JTA或任何其他的事務(wù)策略。 
      Spring沒有直接和其他的開源項目競爭,除非我們感到我們能提供新的一些東西。例如,象許多開發(fā)人員,我們從來沒有為Struts高興過,并且感到在MVC web framework中還有改進(jìn)的余地。在某些領(lǐng)域,例如輕量級的IoC容器和AOP框架,Spring有直接的競爭,但是在這些領(lǐng)域還沒有已經(jīng)較為流行的解決方案。(Spring在這些區(qū)域是開路先鋒。) 
      Spring也得益于內(nèi)在的一致性。 
      所有的開發(fā)者都在唱同樣的的贊歌,基礎(chǔ)想法依然是Expert One-on-One J2EE設(shè)計與開發(fā)的那些。 
      并且我們已經(jīng)能夠使用一些主要的概念,例如倒置控制,來處理多個領(lǐng)域。 
      Spring在應(yīng)用服務(wù)器之間是可移植的。 
      當(dāng)然保證可移植性總是一次挑戰(zhàn),但是我們避免任何特定平臺或非標(biāo)準(zhǔn)化,并且支持在WebLogic,Tomcat,Resin,JBoss,WebSphere和其他的應(yīng)用服務(wù)器上的用戶。

    posted on 2015-11-17 21:25 王和平 閱讀(252) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    My Links

    Blog Stats

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品久久香蕉国产线看观看亚洲| 日韩亚洲国产二区| 毛片免费视频在线观看| 精品国产免费一区二区| 免费人妻av无码专区| 亚洲乱码国产乱码精品精| 亚洲日韩区在线电影| 亚洲中文字幕一二三四区苍井空| 亚洲国产精品18久久久久久| rh男男车车的车车免费网站| 日韩免费在线视频| 成年男女免费视频网站| 亚洲欧洲精品成人久久奇米网 | 4虎永免费最新永久免费地址| 免费看国产精品3a黄的视频| 亚洲AV永久无码精品一区二区国产| 亚洲老妈激情一区二区三区| 亚洲美女中文字幕| 精品女同一区二区三区免费播放| 大地影院MV在线观看视频免费| 日本成年免费网站| 亚洲国产成人久久一区WWW| 国产l精品国产亚洲区在线观看| 亚洲区视频在线观看| 无人视频免费观看免费视频| 午夜视频在线免费观看| 国产免费人成视频在线观看| 久久精品国产亚洲av麻豆| 亚洲av乱码中文一区二区三区| aa毛片免费全部播放完整| 成年在线观看网站免费| 久久久青草青青国产亚洲免观 | 成人免费看片又大又黄| 国产亚洲日韩一区二区三区| 亚洲制服丝袜精品久久| 四虎永久在线精品免费一区二区| 久久国产色AV免费看| 亚洲第一页日韩专区| 亚洲免费视频观看| 国产免费久久精品丫丫| 女人18毛片特级一级免费视频|