生活随笔
收集整理的這篇文章主要介紹了
EJB3概述
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、EJB技術概述
- Java之所以受到企業級應用的青睞,很大程度上不僅是因為其在Web領域的成功,
?? ?更多的是因為Java EE的規范中明確規定了一個清晰的軟件分層,
?? ?將業務邏輯分離于表現層,而EJB就是這樣的位置。 - 什么是EJB
?? ?EJB是用于構建企業應用程序模塊托管的、服務器端組件架構。EJB技術加速
?? ??? ?并簡化了開發基于Java技術的分布式、事務性、安全和便攜的應用程序。 - EJB類型
?? ?EJB的類型有兩種:會話Bean(Session Bean)和
?? ??? ?消息驅動Bean(Message Driven Bean)。
?? ??? ?其中會話Bean又分為有狀態的會話Bean(Stateful Session Bean)
?? ??? ?和無狀態的會話Bean(Stateless Session Bean)。
?? ?會話Bean:是供客戶(Client)端調用的Bean,
?? ??? ?會話Bean通常封裝了常用的業務邏輯,是最常用的Bean。
?? ??? ?有狀態的會話Bean可以保存客戶端的狀態,能夠跟蹤客戶端;
?? ??? ?無狀態的會話Bean不能保存客戶端的狀態;一次會話結束,會話Bean就結束了。
?? ?消息驅動Bean:可供客戶端調用的異步方法,通常封裝了發送消息相關的業務邏輯。
二、下載和安裝JBoss服務器
- 下載JBoss
?? ?下載、解壓 - JBoss的目錄結構
?? ?JBoss解壓縮后的根目錄下有bin、client、docs、server和lib等文件目錄。 - MyEclipse中配置JBoss
?? ?1、配置服務器
?? ?2、配置JDK
?? ?3、配置啟動模式 - 啟動JBoss服務器
?? ?選擇Start選項啟動JBoss
三、實例:HelloEJBService
- 新建EJB工程
?? ?1、選擇菜單中的File | New | EJB Project命令,
?? ??? ?彈出New EJB Project對話框。
?? ?2、輸入項目名稱,同時選擇項目為Java EE 5.0,
?? ??? ?單擊Finish按鈕,這樣就創建了一個EJB項目。 - 定義EJB業務接口
?? ?開發一個SessionBean通常要定義兩個類:一個是服務接口,
?? ??? ?它聲明為Remote或者是Local的。另一個是實現這個遠程接口的Bean,
?? ??? ?它可以被聲明成Stateful或Stateless。
?? ?EJB的業務接口由以下兩部分組成:
?? ??? ?普通的Java接口。
?? ??? ?標注調用接口的方式,本地調用@Local或者遠程調用@Remote。 - 編寫SessionBean
?? ?定義了遠程的服務接口,之后需要開發無狀態的會話Bean也需要兩個要素:
?? ??? ?實現定義的業務接口。
?? ??? ?使用注釋@Stateless,將Bean標注成為無狀態的會話Bean。 - EJB的部署
?? ?將EJB部署到JBoss容器中的步驟如下:
?? ?1、在項目上右擊,在彈出的快捷菜單中選擇MyEclipse |?
?? ??? ?Add and Remove Project Deployments命令。
?? ?2、或者也可以單擊工具欄中的部署按鈕,也會打開部署項目的對話框。
?? ??? ?然后在對話框中選擇Add按鈕,在彈出的對話框中
?? ??? ?選擇所要部署的JBoss服務器,單擊Finish按鈕。
?? ??? ?部署時,可以選擇部署為Explored Archive解壓包和Packaged Archive
?? ??? ??? ?壓縮包兩種方式,兩種方式的區別如下:
?? ??? ??? ?Explored Archive:可以支持熱部署,也就是說當代碼改變后,
?? ??? ??? ??? ?不用重新啟動JBoss便可以運行最新的程序,這種方式適合在
?? ??? ??? ??? ?開發階段部署使用,建議采用這種方式。
?? ??? ??? ?Packaged Archive:不支持熱部署,改變代碼后,需要重新啟動
?? ??? ??? ??? ?JBoss。這種方式適用于產品發版后,運行適用。
?? ?3、部署完成EJB后,將會在JBoss的安裝目錄
?? ??? ?E:\server、jboss-5.0.0.Beta4\server\default\deploy下
?? ??? ?新建xxx.jar的文件夾,這個EJB Jar包便是剛才部署的EJB。
?? ?4、啟動JBoss服務器,在啟動時JBoss會自動加載EJB。
四、運行EJB
- 客戶端調用EJB
?? ?客戶端調用EJB時需要注意以下幾個問題:
?? ?1、要想獲得指定的EJB組件,首先要初始化context上下文對象,
?? ??? ?使用JBoss服務器,所以初始化Context要使用JBoss的實現。
?? ??? ?protected static Context getInitialContext() {
?? ??? ??? ?if (context == null) {
?? ??? ??? ??? ?Hashtable props = new Hashtable();
?? ??? ??? ??? ?props.put(Context.INITIAL_CONTEXT_FACTORY,
?? ??? ??? ??? ??? ?"org.jnp.interfaces.NamingContextFactory");
?? ??? ??? ??? ?props.put(Context.URL_PKG_PREFIXES,
?? ??? ??? ??? ??? ?"org.jboss.naming:org.jnp.interfaces");
?? ??? ??? ??? ?props.put(Context.PROVIDER_URL,?
?? ??? ??? ??? ??? ?"jnp://localhost:1099");
?? ??? ??? ??? ?context = new InitialContext(props);
?? ??? ??? ?}
?? ??? ??? ?return context;
?? ??? ?}
?? ?2、EJB的服務接口需要通過Context對象的lookup方法來查找,
?? ??? ?其中參數的組成為:
?? ??? ?EJB-JAR包中EJB的獲取:EJB服務名/接口類型(remote/local)。
?? ??? ?EAR包中EJB的獲取:EAR包名/EJB服務名/接口類型(remote/local)。
?? ??? ??? ?Context ctx = getInitialContext();
?? ??? ??? ?Ojbect object = ctx.lookup("HelloEJBService/remote");
?? ?3、運行客戶端程序需要將JBoss的客戶端類庫導入到運行環境中,該類庫
?? ??? ?位于E:\server\jboss-5.0.0.Beta4\client\jbossall-client.jar下。 - Web應用調用EJB
?? ?@EJB
?? ?IHelloEJBService service;
?? ?service.sayHelloEJB("Web Client");
五、EJB其他的相關技術規范
- MessageBean(消息Bean):
?? ?也叫做消息驅動Bean,是基于Java消息服務(JMS)技術的,它能夠異步地
?? ??? ?發送消息執行業務邏輯,常用的應用比如驅動工作流程等。 - EntityBean(實體Bean):
?? ?是持久層的業務組件,在EJB3.0以后,被單獨分離出來成為
?? ??? ?JPA(Java Persistence API),是一種ORM的規范。 - 事務管理(Transaction):
?? ?事務管理是EJB中很重要的內容,它能夠保證業務邏輯的完整性。
?? ??? ?事務管理是對一系列操作的管理,它最終只有兩個結果,
?? ??? ?要么成功,要么失敗。一旦失敗,所有的操作將回滾到初始狀態。
?? ??? ?一旦成功,才最終提交,最終持久化。 - EJB安全(Security):
?? ?對于任何系統來說,安全都是需要值得考慮的問題,EJB當然也不例外。
?? ??? ?EJB中針對安全方面有專門的API,
?? ??? ?能夠幫助EJB快速地建立安全的運行環境。 - AOP在EJB中的而應用--攔截器(Interceptor):
?? ?AOP攔截器是EJB3.0以后的功能,它能夠在調用EJB之前對EJB進行攔截,
?? ?可以方便地對訪問進行控制。 - 定時服務(Timer Service):
?? ?定時服務是EJB中類似定時器的服務,它能夠定時地觸發業務邏輯,
?? ??? ?簡化了后臺需要周期性執行的業務的開發。 - Web服務(Web Service):
?? ?Web服務是目前各大公司倡導的業務理念,EJB也不例外。
?? ??? ?在EJB3.0規范中,將EJB發布成Web服務更加容易和方便。
總結
以上是生活随笔為你收集整理的EJB3概述的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。