精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲欧美日韩另类| 欧美一区二区三区| 国产精品粉嫩| 99视频精品视频高清免费| 亚洲五月六月丁香激情| 国产精品国产亚洲伊人久久| 催眠调教后宫乱淫校园| 一级片免费观看视频| 久久久久观看| 亚洲美女免费在线| 国产精品综合久久久| 受虐m奴xxx在线观看| 国产福利在线免费观看| 国产精品一区专区| 精品国产欧美一区二区三区成人| 精品久久久久久久免费人妻| 五月天福利视频| 最新成人av网站| 欧美精品一区二区在线播放| 国产成人永久免费视频| 亚洲AV无码成人片在线观看| 欧美xxx在线观看| 欧美美女直播网站| 亚洲精品视频一二三| 国产情侣小视频| 国产欧美日韩| 欧美午夜精品理论片a级按摩| 日韩亚洲视频在线| 制服丝袜在线一区| 日韩在线高清| 欧美剧在线免费观看网站| 成年人网站国产| 午夜视频在线播放| 国产精品一区不卡| 国产精品久久一区主播| 日本不卡一二区| 精品欧美视频| 亚洲国产视频一区| 成人高清在线观看| 国产成人无码精品亚洲| 国产精品入口久久| 精品女同一区二区| www.com毛片| 69视频在线观看| 国产成人小视频| 国模私拍一区二区三区| 中文字幕av网址| 国外成人福利视频| 一区二区高清视频在线观看| 精品国产一区二区三区免费 | 日本伊人久久| 亚洲妇女屁股眼交7| mm131午夜| 人人妻人人澡人人爽人人欧美一区| 中日韩男男gay无套| 亚洲视频在线免费看| 色91精品久久久久久久久| 欧美黑人xx片| 久久精品视频网| 亚洲一区二区三区在线视频 | 日韩午夜免费视频| 久久久免费电影| 人人干人人干人人干| 国产一区白浆| 日韩在线激情视频| 欧美做受高潮中文字幕| 亚洲大奶少妇| 精品卡一卡二卡三卡四在线| 久久久久久久穴| 黄页免费欧美| 欧美精品99久久久**| 国产精品久久久久久久99| 亚洲色图官网| 亚洲四区在线观看| 日本高清不卡一区二区三| 精品久久久久成人码免费动漫| 国产一区二区三区久久久久久久久 | 永久免费看片在线观看| 亚洲精品永久免费视频| 在线亚洲欧美专区二区| 国内少妇毛片视频| 亚洲男人av| 欧美日韩不卡在线| 免费午夜视频在线观看| 日韩在线短视频| 精品久久久久久中文字幕一区奶水 | 理论片中文字幕| 麻豆国产精品视频| 茄子视频成人在线| 日本最新中文字幕| 欧美精品首页| 欧美久久精品一级黑人c片| 黄色免费看视频| 精品国产亚洲一区二区在线观看| 日韩欧美不卡在线观看视频| 国产精品一区二区小说| 97se综合| 欧美精品三级日韩久久| av av在线| 日韩精品永久网址| 欧美精品18videos性欧| 欧美成人一区二区三区高清| 天天做天天爱天天综合网| 久久久免费高清电视剧观看| 五月天中文字幕| 丝袜美腿亚洲色图| 国产不卡一区二区在线播放| 探花视频在线观看| 亚洲综合日本| 日本aⅴ大伊香蕉精品视频| 中文字幕一区2区3区| 99久久免费视频.com| 久久99精品久久久久久秒播放器 | 亚洲精品一区中文| 国产精品无码毛片| 色吊丝一区二区| 亚洲精品自在久久| 波多野结衣不卡视频| 欧美黄在线观看| 国产精品扒开腿爽爽爽视频| 日本黄色不卡视频| 亚洲激情图片一区| 久久这里只有精品8| 97成人超碰| 91精品黄色片免费大全| 亚洲国产综合av| 99久久人爽人人添人人澡| 亚洲成人精品视频| 国产偷人妻精品一区| 最新国产精品| 国产欧美日韩中文字幕| 99久久免费国产精精品| 风间由美性色一区二区三区| 精品一区在线播放| 女同一区二区免费aⅴ| 8v天堂国产在线一区二区| 亚洲а∨天堂久久精品2021| 天天影视欧美综合在线观看| 国产极品精品在线观看| 同心难改在线观看| 亚洲国产精品成人综合 | 成年女人免费视频| 国产精品a级| 亚洲自拍欧美色图| 亚洲性图自拍| 欧美日韩精品二区| 37pao成人国产永久免费视频| 国产韩日精品| 日韩免费一区二区三区在线播放| 国产免费美女视频| 精品一区二区三区免费毛片爱| 成人午夜电影免费在线观看| 日本一区视频| 亚洲精选视频在线| 亚洲五月激情网| 欧美一区精品| 91精品天堂| 男男电影完整版在线观看| 中文字幕欧美一区| 国产肥臀一区二区福利视频| 精品人人人人| 26uuu另类亚洲欧美日本一| 在线观看国产一区二区三区| 成人免费看视频| 亚洲精品一品区二品区三品区| 成人av色网站| 久久久www成人免费精品张筱雨| 日韩伦人妻无码| 91麻豆123| 大荫蒂性生交片| 精品精品国产毛片在线看| 欧美自拍视频在线观看| 都市激情一区| 欧美日韩性视频在线| 3d动漫精品啪啪一区二区下载| 亚洲一区欧美二区| 水蜜桃亚洲一二三四在线| sm性调教片在线观看 | 五月婷婷丁香综合网| 一区二区中文字幕在线观看| 中文字幕精品一区久久久久| 国产精品7777777| 久久精品视频免费| 99re6这里有精品热视频| 日本欧美一区| 久久久精品一区二区三区| 丰满熟妇乱又伦| 在线观看欧美黄色| 欧美精品久久久久性色| 精品一区二区三区久久久| 免费高清一区二区三区| 精品国产午夜| 国产福利视频一区| 欧美性爽视频| 中文日韩在线视频| 黄色片一区二区| 欧美日韩在线观看一区二区 | 国产日韩在线观看一区| 黑人巨大精品欧美一区二区三区| 成人性视频免费看| 丝瓜av网站精品一区二区 | av毛片在线播放| 欧美精品日韩一区| 青青操免费在线视频| |精品福利一区二区三区| 黄色录像a级片| 国产视频一区欧美| 日本精品免费视频| 久久最新网址| 国产精品久久久久久久久久新婚| av免费在线观看网站| 亚洲色图偷窥自拍| 亚洲精品久久久久久无码色欲四季| 欧美亚洲一区三区| 久草视频在线观| 久久综合丝袜日本网| av观看免费在线| 欧美色123| 中文字幕一区综合| 精品国产亚洲一区二区在线观看 | 亚洲亚洲一区二区三区| 国产免费一区二区三区在线观看| yellow字幕网在线| 欧美国产亚洲精品久久久8v| www.香蕉视频| 欧美日本免费一区二区三区| 精品欧美一区二区三区免费观看| 亚洲精品国产一区二区三区四区在线| 欧美性受xxxx黑人| 九九**精品视频免费播放| 亚洲人成无码www久久久| 亚洲精华国产欧美| 欧美大黑帍在线播放| 亚洲草久电影| 国产综合色一区二区三区| videos性欧美另类高清| 97精品一区二区三区| 九一在线视频| 91精品国产综合久久久久久| 18精品爽视频在线观看| 国产亚洲精品bt天堂精选| 成年人的黄色片| 成人免费毛片a| 稀缺小u女呦精品呦| 懂色av一区二区在线播放| 中文字幕一二三| 国产电影一区二区三区| 中文字幕av一区二区三区人妻少妇| 国内精品不卡在线| 久久成人免费观看| 91久久电影| 综合久久国产| 综合av在线| 美日韩免费视频| av成人在线网站| 57pao国产成人免费| 美女露胸视频在线观看| 色婷婷综合成人| 免费在线观看黄色| 久久夜色精品国产欧美乱| 亚洲 欧美 激情 小说 另类| 亚洲电影第1页| 亚洲色图欧美视频| 亚洲欧美精品一区二区| 成人在线观看网站| 亚洲国产精品999| 性高潮久久久久久久久久| 亚洲乱码国产乱码精品精| 欧美成人免费| 在线观看国产精品日韩av| 欧美一区二区公司| 日韩精品极品视频| 亚洲av无码国产精品久久不卡| 日韩女优av电影在线观看| 神马久久久久久久久久| 日韩一区二区三区电影| 国内av在线播放| 91.com视频| 五月婷婷激情在线| 国产一区二区三区欧美| 五月婷婷丁香六月| 一区二区三区高清国产| av片在线观看免费| 国产91精品黑色丝袜高跟鞋| 成人国产精品一区二区免费麻豆 | 中文字幕一区免费在线观看| 国产精品久久AV无码| 久久久久久久久免费| 日韩精品一区二区三区在线视频| 一卡二卡三卡日韩欧美| 青青青国产在线| 欧美一区二区三区免费观看视频| 午夜视频www| 久久亚洲精品网站| 亚洲性受xxx喷奶水| 亚洲综合在线中文字幕| 在线日本制服中文欧美| 麻豆成人av| 91精品在线观看国产| 日韩avxxx| 国产白丝网站精品污在线入口| 香蕉网在线播放| 亚洲美女在线国产| 波多野结衣不卡| 亚洲第一区第二区| 国产激情在线视频| 久久久精品国产| 欧美aaaaa性bbbbb小妇| 亚洲最大的免费| 色欧美自拍视频| 日韩有码免费视频| 成人av电影在线播放| 老司机免费视频| 亚洲三级在线免费| 波多野结衣一区二区三区在线 | 美女免费久久| 日韩美女视频免费在线观看| 亚洲综合电影| 国产精成人品localhost| 四季av一区二区凹凸精品| 宅男噜噜99国产精品观看免费| 国产精品毛片| 亚洲一区二区三区黄色| 一区二区在线观看免费视频播放 | 久久野战av| 精品国产乱码久久久久软件| 国产一区观看| 男人天堂1024| 国产成人精品午夜视频免费| 色偷偷www8888| 欧美日韩电影在线播放| 成人精品一区二区三区校园激情| 91av视频在线免费观看| 福利一区二区免费视频| 日本成人三级电影网站| 美女网站久久| 曰本三级日本三级日本三级| 国产精品三级在线观看| www.色小姐com| 欧美伦理视频网站| 色老头视频在线观看| 欧美高清性猛交| av不卡一区| 日韩欧美猛交xxxxx无码| 国产酒店精品激情| 日本黄色小说视频| 精品蜜桃在线看| 99色在线观看| 国产日韩精品在线播放| av中文字幕一区二区| 午夜免费高清视频| 高清视频一区二区| 久久久久久久国产精品毛片| 欧美大片一区二区| 国产嫩草在线视频| 精品国产91亚洲一区二区三区www 精品国产_亚洲人成在线 | 亚洲精品在线观看av| 色哟哟国产精品| 亚洲精品字幕在线| 羞羞色国产精品| 亚洲素人在线| 男人添女人下面免费视频| 国产精品九色蝌蚪自拍| 精品国产伦一区二区三| 久久久久久久久久久91| 日韩丝袜视频| 男操女免费网站| 亚洲免费观看高清完整版在线观看 | 天然素人一区二区视频| 日韩第一页在线观看| 老司机免费视频久久| 国产午夜精品福利视频| 91麻豆精品国产91久久久| 波多野结衣精品| 日韩av在线电影观看| 国产精品亚洲人在线观看| 天天操天天爽天天干| 这里只有精品在线播放| 日韩欧美一级| av网址在线观看免费| 亚洲视频每日更新| 婷婷丁香一区二区三区| 国产精品极品美女粉嫩高清在线| 97在线精品| 小毛片在线观看| 欧美日韩在线播放一区| 9999在线视频| 亚洲一区三区| 麻豆成人在线观看| 国产精久久久久久| 国产亚洲xxx| 成人在线视频你懂的| 免费一级特黄录像| 亚洲综合色自拍一区| 超碰在线影院| 国产亚洲精品美女久久久m| 麻豆国产精品777777在线| 青青国产在线观看| 久久精品国产精品| 国产成人影院|