<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks

    來自:http://www.yeeyan.com/articles/view/60971/36275

    簡介

    EJB 3是Java EE 5中獲取提升最多的技術,在即將發布的Java EE 6中 EJB 3.1將進一步帶給大家驚喜。Adam結合他的項目實踐,在本文中詳細列舉了他所喜愛EJB 3的特性。

    Marc Fleury在2002年寫了一篇值得一讀的文章 藍皮書 "為什么我愛EJB"  (下載),他的觀點在當時是令人驚訝的。我那是已經在使用EJB,但并不真正地愛他們 :-)。我沒有到哪個程度,但我真的喜歡EJB 3.0。原因如下:

    1. 性能開銷低。Glassfish v2中 只有大約3%.
    2. EJB 3.0是線程安全的(thread save)。這是一個巨大的優點。 每個線程所都擁有的實例,包括所有注入的資源比如實體管理器(Entity Manager),數據源(Data Source)和JMS,都是線程安全的。最棒的是:容器為你做到了這一切。你只需要一個標識(annotation),比如引用EJB的@EJB,獲取 持久化上下文的@PersistenceContext以及引用資源的@Resource :-))。更多討論請參看"plain old Web Container" :-)(想想POJO-Plain Old Java Object,譯者注)。提醒一下:Servlet作為一種單例(singletons)模式不是線程安全的。
    3. EJB 3.0 支持 事務(transactional)。 所以只要成功調用了EJB方法,所有的資源將都是同步的(synchronized),比如寫到數據庫中的數據,發給服務器的消息等。容器會為你做到這些,你只要知道你所要做的是什么 (這和平臺無關,但有時難以實現 :-))
    4. 在我所有的項目中都將部署描述符而替換成了annotation。這樣就只有一個persistence.xml文件需要部署。EJB在重構,部署和移植方面都表現良好。
    5. EJB 3.0是真正可移植的(它可以讓你中立于實現提供商和架構)。 相比EJB 2.1,這點更加突出,因為私有的部署描述符不再需要。實際上,EJB 3不再需要任何描述符。你只要部署干干凈凈的jar文件,然后附上在meta-inf中的persistence.xml,而其他都是可選的。
    6. 在EJB 3 中,慣例優先原則(Convention Over Configuration)或正式地稱為基于期望的配置( Configuration By Exception) ,它們和依賴注入(Dependency Injection) 的結合非常完美。大多數場合,開發EJB只需要少量的代碼(比如沒有"new"的調用,而只需要做個聲明)
      @Stateless
      public class SampleBean implements Sample {
          @PersistenceContext
          private EntityManager em;


          @EJB
          private Another anotherBean;

    7. Getters 和Setters方法是可選的: 不僅對于EJB,同樣對于JPA。 資源可以直接注入到字段之中。
    8. 缺省和annotation的配置能夠被XML描述符覆蓋。而XML描述符不需面面俱到 - 你只要指定感興趣的部分。你可以為某個特定階段(比如測試、集成)開發通過XML描述對產品進行重新設置。
    9. 不需要特別的工具。你只需要annotation,一個Java 6 的編輯器和一個Jar文件。 無論是IntelliJ,Eclipse (含500附件的插件:-))還是Netbeans 6.1都對EJB 3提供了完善的支持,并對應用服務器也做了很好的集成,EJB的部署、取消部署、配置等都可以直接由IDE來管理。
    10. EJB 3.1可嵌入的特性很可能將獲得支持。Glassfish v3已經對此提供支持。在GlassFish的測試中,我發現容器的啟動只要令人驚訝的500ms。 此外,JBoss也支持可嵌入。
    11. EJB 3.1將提供許多有用的特性:Singletons (更便于配置和用于啟動類等), 更好的timer支持 (cron-like),將來的異步方法,可選的local-interfaces 和基于WAR包的部署。
    12. 池的設置和線程池的配置對伸縮性的控制非常有幫助(除非容器崩潰,否則你不會為無法確定伸縮性而頭痛:-))
    13. 和腳本語言交互的良好支持(包括JavaScript, Groovy)
    14. EJB是缺省可以被管理和監控的。EJB部署到容器后,你就可以對其方法調用和性能等進行監控。
    15. 不需事先依賴任何的架構和庫等。ejb-jar和容器為你的應用代碼打理一切,所以拋出像NoClassDefFoundErrors,ClassCastExceptions這樣異常的可能會降到最低。
    16. EJB 3.0是超級緊湊的技術。實際上你已經不可能再為它做些什么簡化 :-)。當然,這方面我也愿意聽大家的意見。
    17. 他們非常容易測試-因為EJB就是一些類和接口。你甚至可以在容器之外啟動它們。
    18. 即使最簡單的use cases也可以用EJB 3高效的實現。比如關于增刪查改的 CRUD的例子:
      @Stateless
      public class CrudServiceBean implements CrudService<Integer,Customer> {
         
          @PersistenceContext
          private EntityManager em;

          public Customer create(Customer t) {
              this.em.persist(t);
              return t;
          }

          public void delete(Customer t) {
              t = this.em.merge(t);
              this.em.remove(t);
          }

          public Customer find(Integer id) {
              return this.em.find(Customer.class, id);
          }

          public Customer update(Customer t) {
              return this.em.merge(t);
          }
       }

    19. ...他們工作的非常棒:近兩年來,我在項目中使用EJB 3.0 + JPA 1.0。它們的出色表現不僅給我帶來的驚喜,也給我們團隊的帶來了驚喜。

    然而,Java EE6平臺仍有可以提升的空間。JMS規范應該重新設計,讓其更加“流暢”(fluent)。JNDI注冊機制顯得陳舊,有關JNDI的API的改進和簡化將不僅有助于EJB的開發,而且整個Java EE平臺也將因此受惠...

    posted on 2009-04-18 11:19 禮物 閱讀(294) 評論(0)  編輯  收藏 所屬分類: ejb3.0
    主站蜘蛛池模板: 亚洲国产成人资源在线软件| 亚洲高清视频一视频二视频三| 免费无码又爽又刺激网站直播| 免费无码又爽又刺激一高潮| 国产亚洲美女精品久久久2020| 7777久久亚洲中文字幕蜜桃| 亚洲欧美自偷自拍另类视| a级毛片免费观看在线| 97久久免费视频| 国产男女猛烈无遮档免费视频网站| 国产亚洲av片在线观看18女人| 亚洲综合久久精品无码色欲 | 亚洲国产成人精品无码一区二区| 无码午夜成人1000部免费视频| 日韩免费视频在线观看| 亚洲天堂一区二区| 国产亚洲Av综合人人澡精品| 久久精品乱子伦免费| 亚洲国产精品综合久久网络| a级毛片在线免费看| 国产精品冒白浆免费视频 | 亚洲天堂中文资源| 亚洲免费福利在线视频| 亚洲人成网亚洲欧洲无码久久| 亚洲日本VA午夜在线电影| 全亚洲最新黄色特级网站 | 伊人久久国产免费观看视频| 182tv免费视视频线路一二三| 国产a v无码专区亚洲av| 18禁亚洲深夜福利人口| 一个人免费观看在线视频www| 亚洲AV福利天堂一区二区三| 一个人看的hd免费视频| 亚洲成a人片在线观看日本麻豆| AAAAA级少妇高潮大片免费看| 亚洲午夜爱爱香蕉片| 99精品视频免费在线观看| 亚洲av伊人久久综合密臀性色 | 国产精品亚洲色婷婷99久久精品| 亚洲啪啪综合AV一区| 久久不见久久见免费影院|