自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

EJB3.0和Spring的抉擇

開發(fā) 后端
EJB3.0和Spring在傳遞POJO服務(wù)時采用了完全不同的方法,這使得開發(fā)者在實施POJO時不得不進行艱難的選擇。本文能幫您做出抉擇。

EJB3.0和Spring在傳遞POJO服務(wù)時采用了完全不同的方法,這使得開發(fā)者在實施POJO時不得不進行艱難的選擇。

對于POJO的開發(fā),存在著兩種框架EJB3.0和Spring,這兩個框架組件的核心設(shè)計理念是相同的:把中間件服務(wù)傳遞給松散耦合的簡單舊式Java對象(POJO)。這些框架組件通過在運行時截取執(zhí)行內(nèi)容或向POJO注入服務(wù)對象,把應(yīng)用程序服務(wù)與POJO捆綁在一起。POJO本身不關(guān)心捆綁的過程,并且對框架組件幾乎沒有依賴。其結(jié)果是,開發(fā)者可以聚焦于業(yè)務(wù)邏輯,個人可以在沒有框架組件的情況下測試他們的POJO。此外,由于POJO不需要從框架組件中繼承或?qū)崿F(xiàn)框架組件接口,開發(fā)者建立繼承結(jié)構(gòu)和構(gòu)建應(yīng)用程序的時候都有高度的靈活性。

但是,盡管兩者的設(shè)計理念是相同的,它們傳遞POJO服務(wù)時卻采用了完全不同的方法。

注入方式

Spring仍然是依賴XML來注入到POJO的,XML寫起來比較麻煩,雖然流行的IDE都有圖形化的編輯界面,但還是很難操作,同時Spring使用XML來說明配置聲明性服務(wù),也會產(chǎn)生一個冗長的配置文件。這些配置文件必須在運行時才能知道其中的錯誤,哪怕是一個大小寫的問題。因此Spring目前也在考慮如何簡化XML配置文件。

EJB3.0使用Annotation,這要比Spring簡單明了,但其功能也受到一定的限制。Spring基于XML配置的依賴注入語法復(fù)雜,但功能卻非常強大??梢詫⑷魏我粋€POJO注入到另一個POJO,包括應(yīng)用程序中自定義的那些POJO。

松散耦合度與服務(wù)集成

Spring與應(yīng)用服務(wù)器采取松散耦合,作為Spring設(shè)計的核心理念,這樣增強了Spring的靈活性,但同時也增加了開發(fā)的復(fù)雜度,因為如此一來,開發(fā)者就必須弄清楚Spring對應(yīng)的應(yīng)用服務(wù)器的。而事實上,這些與應(yīng)用服務(wù)器的關(guān)聯(lián)代碼對于開發(fā)者大都是不必要的,開發(fā)者往往只需要關(guān)系業(yè)務(wù)邏輯就可以了。使用Spring的聲明式事務(wù)服務(wù)來管理Hibernate事務(wù),必須在 XML配置文件中明確的配置Spring的事務(wù)管理器(TransactionManager)和Hibernate SessionFactory對象。

EJB3.0框架與應(yīng)用服務(wù)器結(jié)合較緊密,服務(wù)被集成封裝,隱藏在EJB接口后面。因為EJB3.0本身就是J2EE標(biāo)準(zhǔn)的一部份,因此,它與其他J2EE服務(wù)如JCA,JMX都結(jié)合的很好。而缺點也正是結(jié)合太緊密,不夠靈活。

對Web框架的支持度

Spring在這方面要優(yōu)于EJB3.0,幾乎所有開源項目都有這個特性——對現(xiàn)有的流行技術(shù)支持度都非常好。Spring可以靈活地集成各種Web框架和模板語言,另外自身也提供了相當(dāng)強大的Spring-MVC框架,而且可以很好的結(jié)合spring webflow,webwork,struts等。同時隨著Spring Web Services 1.0正式公布,Spring對web service開發(fā)明顯增強了,這無疑使Spring愛好者開發(fā)者更加熱衷于Spring。

EJB3.0標(biāo)準(zhǔn)集成JSF,但JSF目前并不成熟,也沒有得到預(yù)期的效果。同時EJB3.0對其他web框架支持也比較差。

開源與標(biāo)準(zhǔn)規(guī)范

Spring框架是開源項目,但不是標(biāo)準(zhǔn)的。Spring的接口配置文件描述都是私有的。雖然,Rona 聲稱Spring完全支持可以不使用Spring的特殊專有服務(wù),但是實際情況往往不是這樣的。因此,一旦使用了Spring的特殊服務(wù),那么就綁定到了 Spring框架上了。例如,如果使用它的管理服務(wù),則必須使用相應(yīng)的Spring私有的API。而且,Spring的發(fā)展完全依賴于Spring開源項目,這使得它的支持力度也不夠。

EJB3.0是完全公開的規(guī)范標(biāo)準(zhǔn),它本身是J2EE標(biāo)準(zhǔn)的一部分,因此得到了很多廠商的支持。例如,JBoss在EJB3.0剛出來時,就宣布其新的版本支持EJB3.0的服務(wù)器。這樣基于EJB3.0的程序就可以比較輕松地在 WebSphere、WebLogic以及JBoss之間進行切換(除非使用了應(yīng)用服務(wù)器提供的專有組件)。

【編輯推薦】

  1. EJB3.1增加了Singleton Beans的概念
  2. 什么是EJB,EJB技術(shù)概覽
  3. EJB2.0教程 詳解EJB技術(shù)及實現(xiàn)原理
  4. MyEclipse+Weblogic開發(fā)EJB組件
  5. Java使用EJB容器的詳細概述
責(zé)任編輯:佚名 來源: 軟件世界
相關(guān)推薦

2009-06-12 12:46:59

EJB3.0

2009-06-12 09:30:56

EJB3.0Spring+Hibe

2009-06-15 16:06:25

JBoss IDE

2009-09-24 12:05:35

2009-06-22 16:59:33

POJOSpringEJB 3.0

2009-06-26 14:37:10

EJB和Spring

2009-06-26 15:17:44

SDOEJB 3.0

2009-09-01 11:19:47

C# 3.0擴展重載抉

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-01 12:04:38

JPASpringJAVA

2009-06-11 15:26:05

EJB組件EJB容器

2009-06-01 15:32:30

EclipseJPA入門

2009-06-11 16:01:17

EJB容器

2009-04-17 22:29:44

2009-06-12 15:03:19

ibmdwWebSphere

2009-09-22 11:30:57

2009-06-22 16:19:45

JavaBeansEJBPOJO

2010-05-06 09:53:04

ibmdwWebSphere
點贊
收藏

51CTO技術(shù)棧公眾號