J2EE的流行趨勢

- -

目前,起源於開源社區的Java技術日益流行,它們大都是對先前的一些技術弊端的改進。例如,對於非常流行的Struts和EJB,批評的聲音是越來越響。業界普遍要求使用更少侵入性,更輕量級和更易於測試的技術來取代它們。也許輕量軟件開發方法學(如敏捷軟件開發,XP)的興起,對於這一趨勢起了推波助瀾的作用。主要的技術趨勢有:

Hibernate成爲主流技術

       Hibernate日益成爲主流的POJO持久層技術。Java社區要求在EJB和POJO中使用同樣的持久化機制,這樣,業務層的代碼將不受業務對象持久化機制的影響。EJB3規範草案似乎在響應這一要求,它在EJB3的持久化中使用和Hibernate類似的機制。考慮到Hibernate加入了JBoss,和Gavin King在EJB3專家組的影響,這點並不奇怪。

Dependency Injection,IoC容器

      IoC容器是一種輕量級容器,它使用配置文件定義和管理服務之間的依賴關係。通過IoC容器,服務的使用者不必主動地請求服務,而是依靠容器注入所需的服務,從而實現了獲取服務方式的"控制反轉"(Inversion of Control)。也稱爲"依賴注入"(Dependancy Injection)。
     同時,IoC容器也象常規的組件容器一樣,提供了調度組件並管理組件生命週期的功能。
     在我看來,使用IoC容器的最大好處是使代碼更加易於測試。

AOP進入實踐階段

      AOP(Aspect Oriented Programming的縮寫),意思是面向Aspect編程,是面向對象編程方法論的延續。從AOP的角度來看,軟件系統可以看作是由多個關注點(Concern)組合而成。AOP的基本思想是,將通用的功能關注點(Concern)從系統中分離出來,封裝成功能獨立的模塊單元(Aspect);最後,通過"Aspect Weaver" 組裝關注點並轉換成可執行代碼。單個模塊單元(Aspect)可織入(Weave)不同的過程,模塊和對象當中,從而提高了代碼的複用性。

Annotations,Metadata,JSR-175

      如果你用過XDoclet,JSR-175的概念和它很相似。JSR-175不過是把XDoclet的功能加入了Java語言規範。試看下面簡單的代碼:

      @entity( table = "UI_USER" )
      public class User {
          @primarykey( column="UI_USER_OID", generator="sequence")
          private Long oid;

          @attribute( column="HAWKID" )
          private String hawkid
          ...
      }

      在以上的例子中,@標籤告訴Java類將自己映射到指定的數據表和字段,從而通過Metadata數據完成持久化的工作。參見"Hibernate成爲主流技術"。

Java規則引擎

      當前在Java社區,一個引人注目的新技術是Java規則引擎,它起源於基於規則的專家系統。同時,也可用於分離商業決策者的商業決策邏輯和應用開發者的技術決策,並把這些商業決策放在中心數據庫或其他統一的地方,讓它們能在運行時(即商務時間)可以動態地管理和修改。從而提供軟件系統的柔性和適應性,幫助開發人員更好地"擁抱變化"。

      不難看出,規則引擎的基本思想和AOP有着異曲同工之妙。

      JSR-94將規則引擎技術引入Java世界,但並沒有定義編寫規則的語法,因此在JSR-94的產品實現中移植還是需要一些工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章