天天看點

EJB與JAVA BEAN的差別?

    解釋一:  

       Java Bean 是可複用的元件,對Java Bean并沒有嚴格的規範,理論上講,任何一個Java類都可以是一個Bean。但通常情況下,由于Java Bean是被容器所建立(如Tomcat)的,是以Java Bean應具有一個無參的構造器,另外,通常Java Bean還要實作Serializable接口用于實作Bean的持久性。Java Bean實際上相當于微軟COM模型中的本地程序内COM元件,它是不能被跨程序通路的。Enterprise Java Bean 相當于DCOM,即分布式元件。它是基于Java的遠端方法調用(RMI)技術的,是以EJB可以被遠端通路(跨程序、跨計算機)。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接通路真正的EJB元件,而是通過其容器通路。EJB容器是EJB元件的代理,EJB元件由容器所建立和管理。客戶通過容器來通路真正的EJB元件。

  解釋二:

     EJB不是一般的JavaBean,EJB是企業級JavaBean,EJB一共分為3種,實體Bean,消息Bean,會話Bean,書寫EJB是需要遵循一定的規範的,具體規範你可以參考相關的資料.另外,要運作EJB,你需要相應的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,隻需要安裝Tomcat就可以了 .EJB用于服務端應用開發, 而JavaBeans用于用戶端應用開發

也可以使用JavaBeans進行服務端應用開發,但JavaBeans模型沒有提供服務架構,當應用需要使用系統級服務(如事務管理,安全性,生命周期管理等)時,不适合。

2.EJB構件是可部署的,EJB構件可以作為獨立的單元被部署到EJB應用伺服器上,是應用構件(application components),而JavaBeans構件是不可部署的, JavaBeans構件是開發構件,不能被部署為獨立的單元。

3.EJB構件是部署可定制的,使用部署描述符可以在部署EJB時對其運作時配置進行定制,而JavaBeans構件在部署時不能進行定制,JavaBeans構件的定制僅發生在開發階段,隻能利用開發工具建立并組裝JavaBeans構件,部署時不能定制

4.EJB構件是分布式對象,可以被客戶應用或者其它EJB構件進行遠端通路,而JavaBeans構件不是分布式對象,JavaBeans構件隻能在其構成的應用中使用,不能提供遠端通路能力

5.EJB構件對終端使用者不可見,運作在服務端,沒有人機互動界面,而部分JavaBeans構件對終端使用者可見,如GUI應用中使用的按鈕構件