SeamFramework.orgCommunity Documentation

部 I. ä½¿ç”¨æ¦‚念上的物件

Web Beans(JSR-299)規格為 Java EE 環境定義了一組簡化應用程式開發的服務。Web Bean 針對於現有的 Java 元件類型(包含 JavaBeans 以及 Enterprise Java Beans)提供了增強的生命週期與互動模型(interaction model)。為了補充傳統的 Java EE 程式撰寫模型(Programming Model),Web Bean 服務提供了:

依賴注入和 contextual 生命週期管理這兩者組合起來可讓一個不熟悉的 API 的用戶無須過問下列問題:

Web Bean 只會指定它所依賴的 Web Bean 的類型和語意。它無須知道實際的生命週期、具體的實做、執行緒模型,或是任何它所依賴的 Web Bean 的其它客戶端。更好的是,它所依賴的 Web Bean 的具體實做、生命週期和執行緒模型可根據建置的情況來改變,並且不影響到任何的客戶端。

事件、攔截器以及裝飾器可增強在此模型中所繼承的 loose-coupling(鬆散結合性):

最重要的是,Web Bean 以一種 typesafe 的方式來提供了所有的這些功能。Web Bean 從不使用基於字串的識別符號(identifier)來斷定共同協作的物件如何相輔相成。雖然 XML 也是選項之一不過卻很少被使用到。取而代之,Web Bean 使用了 Java 物件模型中可使用的 typing 資訊並統合了一個稱為 binding annotations(綁定標記)的新格式,它可將 Web Bean、它們的相依性、它們的攔截器和裝飾器以及它們的事件用戶聯繫在一起。

Web Bean 服務為通用的並且適用於下列位於 Java EE 環境中的元件類型:

Web Bean 甚至提供了必要的整合點來讓未來 Java EE 規格或是非標準架構所定義的其它類型元件能夠利落地與 Web Bean 整合、有效利用 Web Bean 服務,並與任何其它類型的 Web Bean 進行互動。

Web Bean 受到了幾個現有的 Java framework(包括 Seam、Guice 以及 Spring)的影響。不過,Web Bean 擁有它自己獨特的特性:比 Seam 還要完善的 typesafe、比 Spring 更 stateful 而沒有那麼地以 XML 為中心,並且針對於網站和企業級的應用程式上的處理能力比 Guice 完善。

最重要的是,Web Bean 是一個能與 Java EE 以及可使用崁入式的 EJB Lite 的任何 Java SE 環境整合的 JCP 標準。