您好,登錄后才能下訂單哦!
Spring怎么支持EJB的實(shí)現(xiàn),針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
在傳統(tǒng)J2EE應(yīng)用程序中,企業(yè)JavaBeans(EJB)構(gòu)成了應(yīng)用程序架構(gòu)的基礎(chǔ)。盡管Spring提供了EJB所提供的許多服務(wù)的簡(jiǎn)化版本,例如可申明的事務(wù)管理和對(duì)象持久性,但是,在一段時(shí)間內(nèi),許多應(yīng)用程序?qū)?huì)繼續(xù)使用EJB來(lái)構(gòu)建。幸運(yùn)的是,你能夠在基于EJB的解決方案中使用 Spring,本文是從Pro Spring中摘錄,Pro Spring的作者Rob Harrop和Jan Machacek主要研究在Spring中,如何簡(jiǎn)化EJB的創(chuàng)建,以及Spring如何提供一個(gè)簡(jiǎn)單,友好的方法來(lái)訪問(wèn)EJB資源。
隨著Spring的發(fā)展,現(xiàn)在開(kāi)發(fā)者***次真正有了一個(gè)EJB的輕量級(jí)代替者。使用Spring,你能夠利用許多EJB所提供的特性,例如可申明的事務(wù)管理,對(duì)象池和簡(jiǎn)單的ORM(對(duì)象角色建模)等功能。這就是說(shuō),在可預(yù)見(jiàn)的未來(lái),我們期望EJB繼續(xù)能夠用于應(yīng)用程序的開(kāi)發(fā)中。盡管在本書(shū)中,我們并沒(méi)有考慮使用或者不使用EJB的原因,但是,從我們?cè)赟pring方面出色的經(jīng)驗(yàn)來(lái)看,我們推薦你盡可能的使用Spring來(lái)代替EJB。
Spring支持EJB
Spring支持EJB能夠粗略的分成兩類:訪問(wèn)和實(shí)現(xiàn)。Spring中的訪問(wèn)支持類使你能夠容易的訪問(wèn)EJB資源。在這一節(jié)里,我們研究 Spring如何擴(kuò)展基本的JNDI(Java名字目錄接口)支持框架對(duì)EJB的訪問(wèn),并且利用AOP(面向切面的編程)支持來(lái)提供對(duì)EJB資源的基于代理訪問(wèn)。
Spring提供了抽象基類來(lái)支持EJB的實(shí)現(xiàn),這使得創(chuàng)建無(wú)狀態(tài)EJB,有狀態(tài)EJB,消息驅(qū)動(dòng)EJB,這三種類型的EJB更加簡(jiǎn)單。這三種類的使用前提并不是減輕創(chuàng)建EJB的負(fù)擔(dān),而是讓你能夠從bean內(nèi)部比較容易的訪問(wèn)Spring管理的資源,更重要的是,這有助于將業(yè)務(wù)邏輯從EJB實(shí)現(xiàn)中分離,寫(xiě)到EJB的POJO(plain old Java object)對(duì)象中。在這里,不用擔(dān)心這些模糊說(shuō)法,我們將會(huì)在下一章中,使用兩個(gè)例子來(lái)詳細(xì)地討論他們。
我們將要構(gòu)建一個(gè)使用了兩個(gè)EJB服務(wù)的簡(jiǎn)單的Web應(yīng)用程序。***個(gè)無(wú)狀態(tài)會(huì)話bean實(shí)現(xiàn)了EchoService業(yè)務(wù)邏輯接口,并且提供了簡(jiǎn)單的響應(yīng)能力。第二個(gè)是有狀態(tài)會(huì)話bean,它實(shí)現(xiàn)了CounterService業(yè)務(wù)邏輯接口,并且提供了有狀態(tài)計(jì)數(shù)服務(wù)。
這些是簡(jiǎn)單的例子,但是它們有助于演示所推薦的Spring中編譯EJB組件的解決辦法,和Spring支持EJB的各種不同組件之間的區(qū)別。除了討論例子中的多種部署描述符外,我們并不對(duì)EJB作更詳細(xì)的研究。然而,我們將對(duì)Spring在多種組件中對(duì)EJB支持的實(shí)現(xiàn),以及這種實(shí)現(xiàn)如何影響應(yīng)用程序作深入的研究。特別地,我們研究Spring如何在ApplicationContext中定位EJB,以及如何使用JNDI基礎(chǔ)框架來(lái)定位 JNDI資源。
你可能注意到,我們提到的Spring支持三種EJB,但是我們僅僅實(shí)現(xiàn)兩種類型的EJB,無(wú)狀態(tài)和有狀態(tài)。消息驅(qū)動(dòng)bean的支持類使用了類似于無(wú)狀態(tài)和有狀態(tài)會(huì)話bean所使用的模式。
在Spring中構(gòu)建EJB組件
Spring提供了三種抽象類作為EJB bean類的基類,他們是:AbstractStatelessSessionBean,AbstractStatefulSessionBean和 AbstractMessageDrivenBean。當(dāng)使用Spring來(lái)構(gòu)建EJB的時(shí)候,必須提供所有不同的接口和home類,但是,當(dāng)實(shí)現(xiàn) bean類的時(shí)候,就需要從合適的Spring基類繼承。Spring提供的基類允許EJB組件訪問(wèn)Spring的 ApplicationContext,并且,這樣允許這些組件訪問(wèn)Spring所管理的資源。
在繼續(xù)使用Spring來(lái)構(gòu)建EchoService和CounterService bean的詳細(xì)討論之前,我們將要看看,Spring如何在ApplicationContext中定位EJB組件,以及在使用Spring時(shí),所推薦編譯EJB解決辦法。
關(guān)于Spring怎么支持EJB的實(shí)現(xiàn)問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。