Struts2 <Bean>元素:定义及示例化Bean组件

Struts2 的核心架构中,引入了 Spring 的先进思想,通过 IoC 容器对 JavaBean 组件进行管理,而不是通过硬编码的方式来组织这些对象。

通过 IoC 容器来管理 Struts2 的核心组件,可以使用 Struts2 框架成为高度扩展、更灵活的 Web 应用框架,因为开发者可以通过 IoC 容器来自由组织 Struts2 框架中的组件,还可以根据不同的业务逻辑需要,通过 IoC 容器将自己编写的 JavaBean 注入 Struts2 框架中。对于开发者而言,应用 Struts2 框架的 IoC 容器具有无限的扩展性。在 Struts2 中,相对于配置文件的其他元素而言,使用 <bean> 元素定义及示例化 Bean 组件。

语法:

<struts>
  <bean class="url" name="name"/>
  <bean type="value" name="name" class="url"/>
  ……
</struts>


<bean> 元素的属性较多,如表所示。

<bean> 元素属性及说明
属性 说明
name 用于设置Bean示例的名称,其他地方通过此名称引用Bean示例
class 用于设置Bean的类名指定Bean示例是哪一个对象。此属性是必须设置的属性
type 指定Bean的实现接口,说明Bean是哪一个接口的实现类
scope 设置Bean的作用范围
static 是否使用静态方法注入
optional 是否是一个可选Bean

示例

通常情况下,在 Struts2 的配置文件中不需要自定义 Bean,这是因为在 struts-default.xml 文件中 Struts2 已经定义了这些对象。打开 Struts2 核心 Jar 包中的 struts-default.xml 文件,可以看到 Struts2 配置的 Bean 对象,其部分代码如下:
<struts>
  <bean class="com.opensymphony.xwork2.ObjectFactory" name="xwork"/>
  <bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class="org.apache.struts2.impl.StrutsObjectFactory"/>
  <bean type="com.opensymphony.xwork2.ActionProxyFactory" name="xwork" class="com.opensymphony.xwork2.DefaultActionProxyFactory"/>
  <bean type="com.opensymphony.xwork2.ActionProxyFactory" name="struts" class="org.apache.struts2.impl.StrutsActionProxyFactory"/>
  ……
</struts>
上述代码是 struts-default.xml 文件中定义的部分 Bean 对象,既然 Struts2 已经定义这些对象,就可通过继承 struts-default.xml 文件,使我们所编写的配置文件具有这些对象,从而减少配置代码量。

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...