天天看點

在WebWork中實作IoC(3)

3、在WebWork中使用元件

WebWork建立在Xwork的元件實作基礎上,提供元件對象的生命周期管理,使得這些元件對Action類有效。

在WebWork中有兩種類型的類可以使用enabler接口:Action群組件。要使Action能夠設定它所需要的元件,必須使ComponentInterceptor有效;對于元件需要使用其它元件,也是一樣的。

(1)生命周期範圍

在WebWork中,元件可以被配置為三種範圍:

l         單個請求(request)

l         使用者會話(session)

l         整個應用程式(application)

WebWork是滞後加載元件的。也就是說,不管是哪種範圍,元件在使用時才初始化,在指定範圍的生命周期結束時銷毀。例如應用程式範圍的元件,在使用者第一次請求實作該元件的enabler接口的Action時才初始化,在應用程式結束時才銷毀。

既然允許一個元件依賴于另外一個元件,是以元件不能夠依賴于比它範圍小的元件。例如使用者會話範圍的元件不能夠依賴于請求範圍的元件。

另外,所有的元件必須在components.xml注冊(參見後的配置章節)。

(2)獲得ComponentManager

在任何請求時,有三個ComponentManager執行個體存在,對應于每種範圍。執行個體儲存在對應範圍的名為DefaultComponentManager的屬性中。下面是擷取具有請求範圍的ComponentManager的例子:

ComponentManager cm = (ComponentManager) request.getAttribute("DefaultComponentManager");
           

繼續閱讀