Struts2是一个高度可扩展的框架,框架的大部分核心组件都是以配置的方式写在配置文件里的。当开发
者需要替换其核心组件时只需要提供自己的实现类,并且配置到文件中即可。dakaiStruts2-core-x.x.x.jar
文件,看到该文件中配置了大量的bean定义:
...
<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"/>
<bean type="com.opensymphony.xwork2.conversion.ObjectTypeDeterminer" name="tiger" class="com.opensymphony.xwork2.conversion.impl.DefaultObjectTypeDeterminer"/>
<bean type="com.opensymphony.xwork2.conversion.ObjectTypeDeterminer" name="notiger" class="com.opensymphony.xwork2.conversion.impl.DefaultObjectTypeDeterminer"/>
<bean type="com.opensymphony.xwork2.conversion.ObjectTypeDeterminer" name="struts" class="com.opensymphony.xwork2.conversion.impl.DefaultObjectTypeDeterminer"/>
<bean type="com.opensymphony.xwork2.util.PatternMatcher" name="struts" class="com.opensymphony.xwork2.util.WildcardHelper" />
<bean type="com.opensymphony.xwork2.util.PatternMatcher" name="namedVariable" class="com.opensymphony.xwork2.util.NamedVariablePatternMatcher"/>
<bean type="com.opensymphony.xwork2.util.PatternMatcher" name="regex" class="org.apache.struts2.util.RegexPatternMatcher"/>
...
上面的配置文件中配置了Struts框架的核心Bean。在struts.xml文件中定义Bean通常有两个作用。
1.创建该实例Bean,作为Struts2的核心Bean
2.Bean包含的静态方法需要一个值传入
在其中<bean/>标签中的属性如下:
class 这个属性是必填的属性,用来指定Bean的实现类
scope 该属性指定Bean实例的作用域,该属性是个可选属性,只能是default,single,request,session或thread其 中之一
staic 该属性指定是否使用静态方法注入
opational该属性指定是否是一个可选的Bean
者需要替换其核心组件时只需要提供自己的实现类,并且配置到文件中即可。dakaiStruts2-core-x.x.x.jar
文件,看到该文件中配置了大量的bean定义:
...
<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"/>
<bean type="com.opensymphony.xwork2.conversion.ObjectTypeDeterminer" name="tiger" class="com.opensymphony.xwork2.conversion.impl.DefaultObjectTypeDeterminer"/>
<bean type="com.opensymphony.xwork2.conversion.ObjectTypeDeterminer" name="notiger" class="com.opensymphony.xwork2.conversion.impl.DefaultObjectTypeDeterminer"/>
<bean type="com.opensymphony.xwork2.conversion.ObjectTypeDeterminer" name="struts" class="com.opensymphony.xwork2.conversion.impl.DefaultObjectTypeDeterminer"/>
<bean type="com.opensymphony.xwork2.util.PatternMatcher" name="struts" class="com.opensymphony.xwork2.util.WildcardHelper" />
<bean type="com.opensymphony.xwork2.util.PatternMatcher" name="namedVariable" class="com.opensymphony.xwork2.util.NamedVariablePatternMatcher"/>
<bean type="com.opensymphony.xwork2.util.PatternMatcher" name="regex" class="org.apache.struts2.util.RegexPatternMatcher"/>
...
上面的配置文件中配置了Struts框架的核心Bean。在struts.xml文件中定义Bean通常有两个作用。
1.创建该实例Bean,作为Struts2的核心Bean
2.Bean包含的静态方法需要一个值传入
在其中<bean/>标签中的属性如下:
class 这个属性是必填的属性,用来指定Bean的实现类
type 这个事可选属性,它用来指定Bean实例实现的Struts的规范,该规范通常是通过某个接口实现的,因此通常 该 实行的值是一个Struts2接口,如果需要将Bean实例当做Struts2的组件来用,则需要填写
name 该属性指定了Bean实例的名称,对于有相同type的多个Bean,则它们的name属性不能相同scope 该属性指定Bean实例的作用域,该属性是个可选属性,只能是default,single,request,session或thread其 中之一
staic 该属性指定是否使用静态方法注入
opational该属性指定是否是一个可选的Bean