Struts2 <Bean>元素:定义及示例化Bean组件
在 Struts2 的核心架构中,引入了 Spring 的先进思想,通过 IoC 容器对 JavaBean 组件进行管理,而不是通过硬编码的方式来组织这些对象。
通过 IoC 容器来管理 Struts2 的核心组件,可以使用 Struts2 框架成为高度扩展、更灵活的 Web 应用框架,因为开发者可以通过 IoC 容器来自由组织 Struts2 框架中的组件,还可以根据不同的业务逻辑需要,通过 IoC 容器将自己编写的 JavaBean 注入 Struts2 框架中。对于开发者而言,应用 Struts2 框架的 IoC 容器具有无限的扩展性。在 Struts2 中,相对于配置文件的其他元素而言,使用 <bean> 元素定义及示例化 Bean 组件。
语法:
<bean> 元素的属性较多,如表所示。
通过 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> 元素的属性较多,如表所示。
属性 | 说明 |
---|---|
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 文件,使我们所编写的配置文件具有这些对象,从而减少配置代码量。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算