精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

POJO與Spring和EJB 3.0的對比

開發 后端
Spring和EJB 3.0的目標都是把中間件服務傳遞給松散耦合的簡單舊式Java對象POJO。本文簡單比較POJO與Spring和EJB 3.0的區別。

愛因斯坦曾經說過:"每件事物都應該盡可能簡單,而不是更簡單"。的確,對科學真理的追求都是為了簡化理論的根本假設,這樣我們才能處理真正麻煩的問題。企業級軟件的開發也是這樣的。

簡化企業級軟件開發的關鍵是提供一個隱藏了復雜性(例如事務、安全性和永續性)的應用框架。良好設計的框架組件可以提升代碼的重復使用(reuse)能力,提高開發效率,從而得到更好的軟件質量。但是,目前J2EE 1.4中的EJB 2.1框架組件被人們普遍認為是設計較差的和過于復雜的。Java開發者對EJB 2.1很不滿,他們已經試驗了多種其它的用于中間件服務傳送的方法。最引人注目的,下面兩個框架組件已經引起開發者的巨大興趣和積極的反映。它們很可能成為未來企業級Java應用程序可供選擇的框架組件。

◆Spring框架組件是一個流行的,但是非標準的開放源代碼框架組件。它主要是由Interface21 Inc.公司開發和控制的。Spring框架組件的架構是基于依賴注入(DI)設計模式的。Spring可以單獨地或者與現有的應用程序服務器一起工作,它大量地使用XML配置文件。

◆EJB 3.0框架組件是一個標準的框架組件,由Java社區組織(JCP)定義,并受到所有主流的J2EE廠商支持。預發布的EJB 3.0規范的開放源代碼和商業實現都可以在JBoss和Oracle上看到了。EJB 3.0大量使用Java注釋(annotation)。

這兩個框架組件的核心設計理念是相同的:兩者的目標都是把中間件服務傳遞給松散耦合的簡單舊式Java對象(POJO)。這些框架組件通過在運行時截取執行內容或向POJO注入服務對象,把應用程序服務與POJO捆綁在一起。POJO本身不關心捆綁的過程,并且對框架組件幾乎沒有依賴。其結果是,開發者可以聚焦于業務邏輯,個人可以在沒有框架組件的情況下測試他們的POJO。此外,由于POJO不需要從框架組件中繼承或實現框架組件接口,開發者建立繼承結構和構建應用程序的時候都有高度的靈活性。

但是,盡管兩者的設計理念是相同的,它們傳遞POJO服務時卻采用了完全不同的方法。盡管目前已經出版了大量的圖書和文章來把Spring或EJB 3.0與EJB 2.1進行對比,但是它們都沒有對Spring與EJB 3.0之間的差異進行認真的研究。在本文中,我將研究Spring和EJB 3.0框架組件之間的關鍵差異,并討論它們的優缺點。本文的主題也可以應用在其它一些名氣稍小的企業級中間件框架組件上,因為它們都聚焦于"松散耦合的POJO"設計。我希望本文能夠幫助你選擇符合需求的最佳的框架組件。
廠商無關性(Independence)

開發者選擇某種Java平臺的一個最重要的理由就是該平臺的廠商無關性。EJB 3.0是一個開放的、標準的、具有廠商無關性的平臺。EJB 3.0規范是由企業級Java團體中所有主流開放源代碼和商業廠商開發和支持的。EJB 3.0框架組件把開發人員與應用程序服務器實現(implementation)隔離開來了。例如,盡管JBoss的EJB 3.0實現是基于Hibernate的,而Oracle的EJB 3.0實現是基于TopLink的,但是開發人員并不需要學習Hibernate或TopLink的特殊API,就可以讓他們的應用程序在JBoss和Oracle上運行。廠商無關性把EJB 3.0框架組件與其它的POJO中間件框架組件區分開來了。

但是,很多EJB 3.0的批評家迅速指出,在寫這篇文章的時候,EJB 3.0規范還沒有達到最終發表的版本。在EJB 3.0被所有主流的J2EE廠商采用之前可能還需要一到兩年時間。但是,即使你的應用程序服務器還沒有自然地(natively)支持EJB 3.0,你還是可以通過下載和安裝一個"嵌入式的" EJB 3.0產品,在服務器上運行EJB 3.0應用程序。例如,JBoss嵌入式EJB 3.0產品是開放源代碼的,可以在任何與J2SE-5.0兼容的環境中(例如,在Java應用程序服務器中)運行。它現在正在進行beta測試。其它的廠商也可能很快發布他們的嵌入式EJB 3.0產品,特別是用于規范的"數據永續性"部分的產品。

另一方面,Spring一直是非標準的技術,而且在可以預見的未來它仍然是這樣的。盡管你可以把Spring框架組件與任何應用程序服務器一起使用,但是Spring應用程序都被"鎖定"在Spring自身和你所選擇的集成到Spring中的特定服務中了。

◆盡管Spring框架組件是一個開放源代碼項目,但是它仍然擁有配置文件的專利XML格式和專利編程接口。當然,這類"鎖定"發生在任何非標準的產品上,Spring也不例外。但是它卻造成了:你的Spring應用程序的長期生存能力依賴于Spring項目本身(或Interface21 Inc公司,它雇傭了大多數Spring核心開放人員)。此外,如果你使用任何Spring特定的服務,例如Spring事務管理器或Spring MVC,你就被"鎖定"在這些API中了。

◆Spring應用程序需要知道后臺的服務提供者。例如,對于數據持續(data persistence)服務來說,Spring框架組件為JDBC、Hibernate、iBatis和JDO使用了不同的DAO和模板輔助類。因此,如果你希望為Spring應用程序更換持續服務提供者(例如從JDBC切換到Hibernate),你就必須重構自己的應用程序代碼,使用新的輔助類。

服務集成

從較高的層次看,Spring框架組件位于應用程序服務器和服務類庫之上。其服務集成代碼(例如數據訪問模板和輔助類)位于框架組件之中,并暴露給應用程序開發者。與此不同的是,EJB 3.0框架組件被緊密地集成到應用程序服務器中,服務集成代碼被封裝在標準的接口中。

其結果是,EJB 3.0廠商可以積極地優化總體性能和開發者體驗。例如,在JBoss的 EJB 3.0實現中,使用EntityManager保持實體Bean POJO的時候,下層Hibernate對話事務會自動地與該調用方法的JTA事務聯系在一起,當JTA事務提交的時候,它也會提交。如果使用簡單的@PersistenceContext注釋(本文后面有一個例子),你甚至于可以在有狀態的(stateful)對話bean中把EntityManager和它的下層Hibernate事務捆綁到一個應用程序事務上。該應用程序事務在一個對話中跨越了多個線程,它在事務性的Web應用程序(例如多頁面購物車)中是非常有效的。由于在JBoss中,EJB 3.0框架組件、Hibernate和Tomcat緊密集成,上述的簡單和集成的編程接口才得以實現。Oracle的EJB 3.0框架組件和其下層Toplink持續服務之間的也實現了類似層次的集成。

EJB 3.0中集成服務的另一個例子是群集(clustering)支持。如果你在服務器群集中部署EJB 3.0應用程序,那么所有的失效接續(fail-over)、負載均衡、分布式緩存和狀態復制服務都是可以自動地供應用程序使用的。下層群集服務都隱藏在EJB 3.0編程接口后面,它們對于EJB 3.0開發人員來說是完全透明的。

在Spring中,優化框架組件與服務之間的交互操作要困難得多。例如,為了使用Spring的宣告式事務服務來管理Hibernate事務,你必須在XML配置文件中顯式地配置Spring TransactionManager和Hibernate SessionFactory對象。Spring應用程序開發者必須顯式地管理跨多個HTTP請求的事務。此外,要在Spring應用程序中使用群集服務也沒有簡單的途徑。

服務集成的靈活性

由于Spring中的服務集成代碼是作為編程接口的一部分暴露的,應用程序開發者可以根據需要靈活地集成服務。這個特性允許你集成自己的"輕量級"應用程序服務器。Spring最普遍的使用方式是把Tomcat和Hibernate"粘合"在一起來提供簡單的數據庫驅動web應用程序。在這種情況下,Spring自身提供事務服務,Hibernate提供持續(persistence)服務--這種組織方式在Spring中建立了一個微型應用程序服務器。

EJB 3.0應用程序服務器沒有賦予你挑選服務的靈活性。在大多數情況中,你得到一組事先包裝好的特性,而你只需要其中的一部分。但是,如果應用程序服務器由模式化的內部設計主導(類似JBoss),那么你就可能把它分開,去掉一些不必要的特性。在任何情況下,定制成熟的應用程序服務器都不是一個簡單的事情。

當然,如果應用程序的范圍超越了單節點,那么你可能需要捆綁來自普通應用程序服務器的服務(例如資源緩沖池、消息隊列和群集)。在總體的資源消耗方面,Spring解決方案與任何EJB 3.0解決方案一樣,都是"重量級"的。

在Spring中,靈活的服務集成使得我們更容易把仿制(mock)對象(而不是實際的服務對象)捆綁到應用程序,用于在容器外部進行單元測試。在EJB 3.0應用程序中,大多數組件都是簡單的POJO,我們可以很容易地在容器外部測試這些它們。但是對于測試那些涉及到容器服務的對象(例如持續EntityManager),我們推薦在容器內測試,因為比起仿制對象的方法,它們更簡單、更牢固、更精確。 XML與注釋的比較
從應用程序開發者的角度來看,Spring的編程接口主要是基于XML配置文件的,而EJB 3.0廣泛使用了Java注釋。XML文件可以表達復雜的關系,但是它們同時也很冗長、牢固程度也較低。注釋簡單明了,但是在注釋中我們卻很難表達復雜的或層次的結構。

Spring和EJB 3.0關于XML或注釋的選擇是依賴于這兩個框架組件后面的架構的:由于注釋只能保存相當少的配置信息,只有預先集成的框架組件(類似在框架組件中已經完成了大多數預備工作)可以廣泛地把注釋作為配置選項。我們已經討論過了,EJB 3.0符合這種需求,而Spring作為一個通用的DI框架組件,不符合這個需求。

當然,EJB 3.0和Spring都在學習對方的最佳特性,它們都在某個程度上支持XML和注釋。例如,在EJB 3.0中XML配置文件是一個可選的重載機制,可以用于改變注釋的默認行為。注釋也可以用于配置某些Spring服務。

認識XML和注釋之間的區別的最好途徑是通過示例。在下一部分,我們會看到Spring和EJB 3.0是如何為應用程序提供關鍵服務的。

 

【編輯推薦】

  1. JavaBeans、EJB和POJO詳解
  2. 擁抱更簡單的POJO編程模型
  3. 什么時候在EJB系統中使用XML
  4. EJB3.0的入門和使用EJB3.0的方法
  5. Spring事務配置的五種方式
責任編輯:佚名 來源: 天極網
相關推薦

2009-06-12 09:41:07

EJB3.0Spring

2009-06-22 16:19:45

JavaBeansEJBPOJO

2009-06-12 12:46:59

EJB3.0

2009-06-12 09:30:56

EJB3.0Spring+Hibe

2009-06-26 14:37:10

EJB和Spring

2010-06-21 10:35:30

LinuxDeepin

2009-09-24 12:05:35

2009-06-15 16:06:25

JBoss IDE

2009-06-26 14:54:18

Spring支持EJB

2009-06-04 17:33:08

EJB 3.1EJB 3.0

2009-10-29 09:52:55

OSGi

2009-06-11 15:26:05

EJB組件EJB容器

2009-06-12 11:46:39

JavaBeanEJB

2009-02-16 09:25:43

EJBJavaBeanWebSphere

2009-09-08 11:26:35

Spring 3.0

2009-06-11 16:01:17

EJB容器

2009-09-29 09:39:38

Spring 3.0

2010-09-01 16:36:20

DHCPNAT

2025-02-17 09:32:18

2009-07-03 17:39:20

JSP與EJB
點贊
收藏

51CTO技術棧公眾號

日本在线成人| 国产麻豆91视频| 亚洲区小说区图片区qvod| 一本大道久久a久久综合婷婷| 蜜桃臀一区二区三区| 亚洲天堂中文网| 欧美 日韩 国产一区二区在线视频 | 69av成人| 国产农村妇女毛片精品久久麻豆| 成人免费网站在线| 天天操中文字幕| 性欧美69xoxoxoxo| 日韩精品中文字幕在线| 91日韩精品视频| 黄毛片在线观看| 亚洲欧美自拍偷拍| 欧美中日韩一区二区三区| 国产三级午夜理伦三级| 亚洲影院一区| 欧美高清电影在线看| 欧美波霸videosex极品| 激情视频极品美女日韩| 欧美精品粉嫩高潮一区二区| 欧美日本视频在线观看| 性欧美1819sex性高清大胸| 国产亚洲一本大道中文在线| 国产精品一区二区a| 亚洲天堂视频网| 美女91精品| 97视频在线观看网址| 日韩高清dvd碟片| japanese国产精品| 日韩国产激情在线| 年下总裁被打光屁股sp| 成人豆花视频| 欧美日产国产精品| 成人午夜激情av| 免费看男女www网站入口在线| 日韩美女视频19| 亚洲欧洲免费无码| 韩国三级av在线免费观看| 成人av在线资源| 成人在线观看91| 99在线观看免费| 黄色精品一二区| 国产精品久久久久久久久久尿| 日本在线观看中文字幕| 国产精品a级| 久久99精品国产99久久6尤物| 久久精品亚洲a| 精品国产一区二区三区久久久樱花 | 999免费视频| 精品一区二区久久| 国产有码一区二区| 国产一区二区三区黄片| 精品一区二区三区免费播放| 国产精品亚洲аv天堂网| 最近日韩免费视频| 日本va欧美va瓶| 国产精品www色诱视频| 日本免费在线观看视频| 美女爽到呻吟久久久久| 国产成人精品视频| 中文字幕乱伦视频| 精品一区二区日韩| 95av在线视频| 空姐吹箫视频大全| 97se亚洲国产综合自在线观| 久久国产精品亚洲va麻豆| 天堂在线视频观看| 久久久久国产精品人| 日韩精品一线二线三线| 欧美人xxx| 亚洲日本电影在线| 国产成人艳妇aa视频在线| heyzo一区| 日韩欧美国产骚| 免费看涩涩视频| 久久免费精品| 亚洲精品久久久久| 妺妺窝人体色WWW精品| 国产精品美女久久久久久不卡 | 久久影院100000精品| 中文字幕亚洲欧美日韩在线不卡| 精品无码一区二区三区蜜臀| 午夜精品免费| 欧美中文字幕在线| 91成年人视频| 国产成人免费视频一区| 久久久www免费人成黑人精品| 国产在线视频福利| 亚洲欧美视频在线观看视频| 日韩精品一区在线视频| 亚洲一区二区在线免费| 捆绑裸体绳奴bdsm亚洲| 天天综合网天天| 欧美日韩精品一区二区天天拍小说| 欧美wwwwwww| 在线免费看av片| 秋霞午夜鲁丝一区二区老狼| 国产精品亚洲美女av网站| 99国产精品欲| 91蝌蚪porny九色| 中文字幕欧美三区| 一区二区三区 在线观看视| 欧美成人另类视频| 国产精品a级| 国产精品视频成人| 丰满人妻妇伦又伦精品国产| 久久久久久免费毛片精品| 成人性做爰片免费视频| 中国色在线日|韩| 91精品国产一区二区人妖| 精品少妇一区二区三区免费观| 久久久人成影片免费观看| 欧美一级淫片aaaaaaa视频| 国产乱人乱偷精品视频| 国产欧美一区二区精品婷婷| 老太脱裤子让老头玩xxxxx| 久久青草视频| 亚洲人a成www在线影院| 精品一区二区三区人妻| 狠狠色伊人亚洲综合成人| 欧美二区在线看| 丰满的护士2在线观看高清| 欧美日韩在线免费视频| 国产精品无码久久久久久| 欧美日本中文| 成人性教育视频在线观看| 国产人成在线观看| 黑人精品xxx一区一二区| 亚洲国产精品第一页| 久久久久久免费视频| 国产精品亚洲欧美导航| 精品电影在线| 欧美日韩在线视频首页| 中文字幕乱码一区| 欧美日韩调教| 亚洲永久在线观看| 成人国产免费电影| 91精品欧美久久久久久动漫| 国产又黄又粗又猛又爽的| 日韩av一级片| 日韩少妇中文字幕| 欧美性suv| 夜夜嗨av一区二区三区免费区| 成人精品在线看| 99久久国产免费看| 亚洲熟妇av一区二区三区漫画| 久久九九热re6这里有精品| 久久久久久久一区二区| 欧美 日韩 综合| 亚洲一二三专区| 欧美xxxxx少妇| 在线日韩av| 精品欧美一区二区精品久久| 欧美aa在线观看| 亚洲免费成人av电影| 亚洲视频 欧美视频| 久久蜜桃av一区精品变态类天堂| 久久久久狠狠高潮亚洲精品| 在线成人动漫av| 国产精品成人国产乱一区| 99re热久久这里只有精品34| 欧美日韩一级片在线观看| 99久久精品久久亚洲精品| 狠狠色伊人亚洲综合成人| 99亚洲国产精品| 成人看片爽爽爽| 97精品一区二区三区| 欧美zzoo| 欧美浪妇xxxx高跟鞋交| 久久久精品99| 99在线精品视频| 欧美性猛交久久久乱大交小说 | 天堂久久一区二区三区| 日韩欧美在线电影| 国产视频一区二区在线播放| 久久久久久久av| 韩日视频在线| 欧美一区二区免费视频| 91久久国产视频| 国产拍揄自揄精品视频麻豆| 久久精品视频在线观看免费| 国语精品一区| 日本免费高清不卡| www.成人| 欧美与欧洲交xxxx免费观看| 18免费在线视频| 精品国精品自拍自在线| 亚洲不卡在线视频| 亚洲欧美激情视频在线观看一区二区三区| 亚洲性图第一页| 石原莉奈在线亚洲二区| 大地资源网在线观看免费官网| 日韩影视高清在线观看| 成人a在线视频| 91美女精品| 久久久国产精品一区| 天天色棕合合合合合合合| 欧美日韩一区三区四区| 91精品国产高潮对白| 中日韩免费视频中文字幕| 亚洲精品乱码久久久久久蜜桃欧美| 老司机精品导航| 国产尤物av一区二区三区| 黄色不卡一区| 国产欧美一区二区三区不卡高清| a∨色狠狠一区二区三区| 欧美激情亚洲精品| 日本在线免费中文字幕| 亚洲美女免费精品视频在线观看| 亚洲国产精品suv| 欧美视频中文一区二区三区在线观看| 九九视频在线免费观看| 国产精品久久久久久久午夜片| 国产性生活毛片| 国产综合久久久久久久久久久久| 欧美日韩第二页| 在线综合亚洲| 蜜桃视频一区二区在线观看| 成人91在线| 欧美视频小说| 久久香蕉精品香蕉| 国产精品久久国产精品| 亚洲男人在线| 国产欧美精品一区二区三区-老狼| 黄色在线网站噜噜噜| 久久久噜噜噜久久| 18加网站在线| 久久成人免费视频| 暖暖日本在线观看| 中文字幕精品av| 国产精品久久一区二区三区不卡 | 国产福利电影在线| 亚洲精品999| 欧美熟妇另类久久久久久不卡 | 日本免费一区二区三区视频观看| 毛片网站在线看| 美日韩精品视频免费看| 黄色成人影院| 久久精品一偷一偷国产| 国产欧美黑人| 久热精品视频在线免费观看| 麻豆av在线免费看| 久久天堂电影网| а√中文在线8| 久久久成人av| 四季久久免费一区二区三区四区| 久久中文字幕国产| 手机在线免费看av| 欧美—级高清免费播放| 成人福利电影| 欧美中文字幕精品| 亚洲色偷偷综合亚洲av伊人| 亚洲综合精品在线| 神马日本精品| 亚洲一区二区三区四区视频| 99er精品视频| 亚洲999一在线观看www| 韩国三级成人在线| 国产精品亚洲综合| 亚洲成人一品| 日韩精品一区二区三区四区五区| 日韩av有码| 日本三日本三级少妇三级66| 欧美在线高清| 大j8黑人w巨大888a片| 久久大逼视频| 亚洲欧美日韩综合网| 国产精品99久久久久久宅男| 亚洲熟女一区二区三区| 99久久久免费精品国产一区二区| 泷泽萝拉在线播放| 中文字幕欧美三区| 久久艹精品视频| 欧美午夜电影在线| 在线观看免费中文字幕| 日韩欧美一级片| 天天操天天操天天| 怡红院精品视频| www视频在线免费观看| 91国内免费在线视频| 精品123区| av在线亚洲男人的天堂| 宅男在线一区| 国产又爽又黄ai换脸| 亚洲毛片在线| 日本在线观看免费视频| 国产精品亚洲视频| 亚洲av成人精品一区二区三区| 久久久精品免费观看| 伊人久久久久久久久久久久久久| 亚洲国产日日夜夜| 中文字幕激情视频| 亚洲国产91精品在线观看| 成人一区二区不卡免费| 欧美激情亚洲自拍| 成人在线观看免费播放| 国产精品久久久久久久久久直播| 九九热精品视频在线观看| 国产精品视频一二三四区| 噜噜噜91成人网| 国产精品熟妇一区二区三区四区 | 中日韩精品一区二区三区| 亚洲欧洲韩国日本视频| www.com国产| 日韩三级在线免费观看| 高清国产福利在线观看| 69精品小视频| 欧美经典一区| 亚洲精品一卡二卡三卡四卡| 99热免费精品在线观看| 999这里有精品| 久久久久久久免费视频了| 精品一级少妇久久久久久久| 欧美日本在线播放| 成人激情电影在线看| 性色av一区二区三区| 精品久久亚洲| 亚洲开发第一视频在线播放| 国产婷婷精品| 久久久久久婷婷| 136国产福利精品导航| 无码免费一区二区三区| 日韩精品www| 97天天综合网| 成人自拍爱视频| 欧美一区二区三区另类| www.久久av.com| 日本一区二区三区高清不卡| 亚洲第一精品在线观看| 日韩av在线免费| 91超碰在线| 国产在线欧美日韩| 日韩亚洲国产精品| 高清中文字幕mv的电影| 亚洲国产成人av好男人在线观看| a级片在线视频| 超薄丝袜一区二区| 亚洲精品无播放器在线播放| 午夜精品美女久久久久av福利| 日韩中文字幕区一区有砖一区 | 欧美三级午夜理伦三级小说| 国产精品一线二线三线| 成人久久视频在线观看| 日韩女同强女同hd| 亚洲精品久久久久中文字幕二区| av白虎一区| 精品一区二区三区国产| 亚洲永久免费精品| 91精品人妻一区二区三区蜜桃欧美| 亚洲成人在线观看视频| 亚洲免费视频网| 97色在线视频观看| 亚洲精品456| 亚洲成人av免费看| 中文字幕中文在线不卡住| 国产精品一区二区av白丝下载 | 欧美成va人片在线观看| 亚洲婷婷噜噜| 国产午夜精品在线| 午夜亚洲影视| 天天操天天舔天天射| 欧美三级电影精品| 免费大片黄在线| 超碰97在线人人| 夜夜精品视频| 91精品国自产在线| 精品视频999| 亚洲男同gay网站| 精品国产乱码久久久久久郑州公司 | 国产欧美自拍一区| 成年人观看网站| 中文一区一区三区高中清不卡| 97人妻精品一区二区三区动漫| 色琪琪综合男人的天堂aⅴ视频| 国产精品2区| 男人添女人荫蒂免费视频| 久久色视频免费观看| 一级片视频免费| 久久久久久一区二区三区| 国产一区二区三区四区五区| jizz18女人| 亚洲h在线观看| 国产精品毛片一区二区三区四区| 亚洲一区二区三区sesese| 一本色道久久精品| 97在线观看免费视频| 日韩三级视频中文字幕| 超碰一区二区| 99久re热视频精品98| 9久草视频在线视频精品| 国产又粗又长视频| 欧美性做爰毛片| 91精品国产乱码久久久久久久| 成人免费无码大片a毛片| 69堂成人精品免费视频| 黄色亚洲网站| 91网站在线观看免费|