首页 > 其他 > 详细

Struts2 学习笔记——struts.xml文件之Bean的配置

时间:2015-03-15 23:33:05      阅读:333      评论:0      收藏:0      [点我收藏+]

Struts2的大部分核心组件不是以硬编码的形式写在代码中,而是通过自身的IoC容器来管理的。

Struts2以可配置的形式来管理核心组件,所以开发者可以很容易的扩展框架的核心组件。当开发者需要扩展或者替换Struts2的核心组件时,只需要提供自己的组件实现类,并部署在Struts2的IoC容器中即可。

我们打开struts2-core-2.2.1.1.jar中的struts-default.xml文件,可以看到大量的Bean的定义。如下代码片段:

<struts>

    <!—- 两个对象工厂组件-->

 <bean class="com.opensymphony.xwork2.ObjectFactory" name="xwork" />

<bean type="com.opensymphony.xwork2.ObjectFactory"

            name="struts"  

           class="org.apache.struts2.impl.StrutsObjectFactory" />

... ... 

而我们在struts.xml定义Bean时,通常有以下两个作用:

1、 创建的Bean实例作为Struts2框架的核心组件使用。

2、  Bean的静态方法需要一个值注入。

对于第一种用法,Bean的实例作为核心组件使用。因此需要告诉Struts2容器实例的作用----即实现了Struts2的某个接口,这个接口定义了该组件必须遵循的规范。

例如下面我们使用一个自定义的ObjectFactory对象来替换Struts2的内置ObjectFactory

<!—-配置自定义的ObjectFactory Bean,名称为myFactory,

实现com.opensymphony.xwork2.ObjectFactory 类,

实现类com.smp.ObjectFactory -->

<bean name="myFactory"

type="com.opensymphony.xwork2.ObjectFactory" class="com.smp.ObjectFactory" />

 

在使用<bean/>元素在struts.xml文件中定义Bean,bean元素有以下几个属性

class:这个属性是个必填属性,它指定了Bean实例的实现类。

type:这个属性是个可选属性,它指定了Bean实例实现的Struts2的规范,该规范通常是通过某个接口或者在此前定义过的Bean,因此该属性值通常是个接口或者此前定义过的Bean的name属性值。如果需要将Bean的实例作为Strut2组件使用,则应该指定该属性的值。

name:该属性是个可选属性,它指定的Bean实例的名字,对于有相同type的多个Bean。则它们的name属性不能相同。

scope:该属性是个可选属性,它指定Bean实例的作用域,该属性的值只能是default、singleton、request、session或thread之一。

static:该属性是个可选属性,它指定Bean是否使用静态方法注入。通常而言,当指定了type属性时,该属性就不应该指定为true。

optional:该属性是个可选属性,它指定Bean是否是一个可选Bean。

Struts2 学习笔记——struts.xml文件之Bean的配置

原文:http://www.cnblogs.com/lulu638/p/4340703.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!