Struts2的大部分核心组件不是以硬编码的形式写在代码中,而是通过自身的IoC容器来管理的。
Struts2以可配置的形式来管理核心组件,所以开发者可以很容易的扩展框架的核心组件。当开发者需要扩展或者替换Struts2的核心组件时,只需要提供自己的组件实现类,并部署在Struts2的IoC容器中即可。
我们打开struts2-core-2.2.1.1.jar中的struts-default.xml文件,可以看到大量的Bean的定义。如下代码片段:
<!—- 两个对象工厂组件-->
<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。
注:转自
http://blog.163.com/artsn@126/blog/static/36533281201111511381316/
分享到:
相关推荐
Struts-config.xml文件是Struts1的核心配置文件,用于配置Struts的各种组件,包括数据源、表单Bean、Action Mapping等。 TLD文件 TLD(Tag Library Descriptor)文件是Struts1的标签库文件,用于定义Struts的标签...
在深入理解Struts2框架之前,我们首先需要了解其核心配置文件——`struts.xml`。 **1. struts.xml配置** ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation...
同时,Struts2的配置文件通常为struts.xml,配置更加简洁。 **Struts2.x note.jsp** 在Struts2的学习笔记中,`note.jsp`可能同样用于显示和编辑笔记,但使用的是Struts2的标签库,如`<s:property>`来显示模型对象的...
2. **环境搭建**:(一)环境搭建.txt可能包含了安装和配置Struts2框架的基础步骤,这通常包括添加Struts2库到项目依赖、配置web.xml文件、创建第一个Struts2应用等。 3. **UploadServlet.java**:在Struts2中,...
### Struts 1.2 学习笔记:深入理解 Struts 工作流程 #### Struts 概述 Struts 是一个开源的 MVC(Model-View-Controller)框架,用于简化 Java Web 应用程序的开发。Struts 1.2 版本是基于 Servlet 的 MVC 实现,...
Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...
Struts2是一个流行的Java Web应用程序框架,用于构建...以上就是Struts2课程学习笔记中的主要知识点,涵盖了从基础配置到高级特性的多个方面。理解和掌握这些内容,有助于深入学习和使用Struts2框架进行Java Web开发。
Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...
4. **struts-default.xml**:Struts2框架默认加载的配置文件,定义核心bean和拦截器,自动包含到struts.xml中,提供标准配置。 5. **其它配置文件**:如velocity.properties、struts-default.vm、struts-plugin.xml...
### Struts2学习笔记 #### 一、Struts2简介 Struts2是Apache基金会下的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Web应用程序框架。Struts2提供了丰富的功能来简化Java Web应用的开发过程...
3. **配置文件**:Struts2的配置通常在`struts.xml`文件中进行,用于定义Action类、Action的URL映射、结果类型等。通过XML或注解的方式,开发者可以灵活地配置应用程序的行为。 4. **拦截器(Interceptor)**:拦截...