不斷進化的EJB (Java EE)

作   者:潘家羲 精誠資訊 恆逸教育訓練中心 資深講師
技術分類:程式設計

Java EE的規範定義了三大元件讓我們可以輕鬆實踐MVC架構的應用程式,其中Servlet扮演Controller的角色,JSP扮演View的角色,EJB扮演Model的角色。儘管在企業端應用程式的開發上,EJB元件可以讓我們建立一套健全的商業邏輯體系,然而在Java EE 5.0之前,EJB元件從開發、打包、部署到用戶端的呼叫,都存在諸多的不便性,以開發一個Stateless Session Bean為例,我們需要:

  1. 撰寫一個類別實作SessionBean
  2. 撰寫一個Home interface繼承 EJBHome
  3. 撰寫一個Component interface繼承EJBObject
  4. 撰寫EJB專屬的DD檔(ejb-jar.xml)描述EJB的結構
  5. 將EJB打包成Jar檔
  6. 開發Web元件呼叫EJB(透過JNDI查詢)
  7. 在Web專屬的DD檔(web.xml)宣告參考的EJB名稱
  8. 將Web打包成war檔
  9. 將EJB及Web模組打包成ear檔
  10. 註冊EJB元件的JNDI名稱
  11. 在Vendor DD檔將參考的EJB名稱對應到註冊的JNDI名稱
  12. 部署ear檔

我的天阿!要撰寫、部署及呼叫一個EJB元件還真是辛苦呀!為了徹底改善及簡化EJB開發的體質,Java EE從5.0開始廢除了Home interface、引進@Annotation來簡化DD檔的設定、藉由@EJB進行Dependency Injection來簡化用戶端的存取。從此之後,EJB的開發跟用戶端呼叫終於有了大幅度的改善:

  1. 撰寫一個Component interface
  2. 撰寫一個EJB元件實作Component interface
  3. 藉由@Annotation定義EJB元件的類型
  4. 將EJB打包成Jar檔
  5. 開發Web元件呼叫EJB(透過@EJB進行Dependency Injection)
  6. 將Web打包成war檔
  7. 將EJB及Web模組打包成ear檔
  8. 部署ear檔

Java EE 5.0在EJB元件的開發跟用戶端存取上確實簡化了不少,但EJB元件的打包步驟還是麻煩,jar、war、ear的打包仍然少不了。於是Java EE 6.0引進了Web Profile規格,EJB元件可以不需要定義interface(No interface EJB),EJB元件可以不需要單獨打包,可以直接在Web應用程式開發EJB元件,這麼一來,EJB元件從開發、打包、部署到用戶端的呼叫通通給他大刀破釜的簡化成:

  1. 撰寫一個No interface的EJB元件

  2. 撰寫一個Servlet存取EJB

  3. 將Web打包成war檔
  4. 部署war檔

是不是很神奇呢?EJB元件的開發竟然可以簡化到這樣的地步,以後開發高品質的Java EE應用程式不再是件苦差事了。

您可在下列課程中了解更多Java EE 6.0最新的程式開發技巧喔!

 

Share |
可在課程中了解更多技能…
相關學習資源︰

【JDBCJE】Java EE6之使用JMS和EJB進行商業元件開發