struts2中的Bean配置


     struts2框架是一個高度可擴展的框架,框架的大部分核心組件,struts2並不是以硬編碼的方式寫在代碼中的,而是以自己的IoC(控制反轉)容器來管理框架的核心組件。

     struts2框架以可配置的方式來管理struts2的核心組件,從而允許開發者可以很方便的擴展該框架的核心組件。當開發者需要擴展,或者替換struts2的核心組件時,只需要提供自己的組件實現類,並將該組件實現類部署在struts2的IoC容器中即可。

 

     在struts.xml文件中定義Bean時,通常有如下兩個作用。

          1. 創建該Bean的實例,將該實例作為struts2框架的核心組件使用。

          2. Bean包含的靜態方法需要注入一個值。

     舉例說明:例如下面的struts.xml文件中的Bean配置,我們使用了一個自定義的ObjectFactory來替換struts2內置的ObjectFactory。配置代碼片段如下:

<struts>
     <!-- 配置定制的ObjectFactory Bean,該Bean實現了ObjectFactory接口,實現類是MyObjectFactory-->
     <bean type="com.opensymphony.xwork2.ObjectFactory"
name="myfactory" class="com.opensymphony.xwork2.myapp.MyObjectFactory"/>
</struts>

 配置文件解釋:

     <bean />元素在struts.xml文件中定義Bean,bean元素有如下幾個屬性:

          class:必填屬性,它指定Bean實例的實現類。

          type:可選屬性,它指定Bean實例實現的struts2的規范,該規范通常是通過某個接口來體現,因此該屬性的值通常是一個struts2接口。如果需要將Bean實例作為struts2組件來使用,則應該指定該屬性的值。

          name:可選屬性,該屬性指定Bean實例的名字,對於有相同type類型的多個Bean,他們的name屬性不能相同。

         scope:可選屬性,該屬性指定Bean實例的作用域,屬性值只能是default、singleton、request、session或者thread之一。

          static:可選屬性,該屬性指定Bean是否使用靜態方法注入,通常而言,當指定了type屬性時,該屬性值不應該指定為true。

         optional:可選屬性,該屬性指定該Bean是否是一個可選的Bean。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM