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。

posted on 2012-07-27 10:49  幸福从不迟疑  阅读(6741)  评论(0编辑  收藏  举报