插件机制是Struts2的重要组成部分。
方便为Struts2扩展功能。
主要作用:
- 简化开发,提高开发效率,有人写插件,封装技术细节,其他人使用;
- 代码复用,封装的插件,可以重复利用;
- 提高软件开发的质量,插件被反复使用,bug应该较少。
Struts2 插件的文档:http://struts.apache.org/2.0.11/docs/plugins.html
Struts2的插件机制,类似eclipse或者firefox的插件机制,和Struts1.x有很大区别。
Struts2插件由单一的jar文件组成,包括:类文件和配置文件(扩展、替代或者添加到已有的框架功能中)。
安装插件:通过复制(并且复制依赖jar文件)到classpath。
配置插件:插件的jar文件中包含struts-plugin.xml,和struts.xml文件格式相同。
该配置文件可以:
- 定义新的package、result、interceptor、action
- 覆盖框架的常量
- 引入新的扩展点实现类
框架中一些受欢迎,但是可选的属性通过插件方式发布。应用程序发布时可以留下所有插件,也可以只包含其中使用到的。插件可以包含在原始代码中,也可以是第三方发布的。
注意:插件的加载没有特定次序。插件不能互相依赖。插件可以依赖struts2核心部分的类,但是不能依赖其他插件的类。
框架加载配置文件的次序:
- struts-default.xml (bundled in the Core JAR)
- struts-plugin.xml (as many as can be found in other JARs)
- struts.xml (provided by your application)
配置文件都加载完毕后,各个插件才可以使用这些配置。
扩展点:
- com.opensymphony.xwork2.ObjectFactory:单例的,用于创建action、result和interceptor,属性是 struts.objectFactory
- com.opensymphony.xwork2.ActionProxyFactory:创建Action的代理
- com.opensymphony.xwork2.util.ObjectTypeDeterminer:确定数据类型
- rg.apache.struts2.dispatcher.mapper.ActionMapper:确定请求对应的action
- org.apache.struts2.dispatcher.multipart.MultiPartRequest:处理文件上传的请求
- org.apache.struts2.views.freemarker.FreemarkerManager:加载和处理freemarker的模板
- org.apache.struts2.views.velocity.VelocityManager:加载和处理velocity的模板
本文介绍Struts2插件机制的特点与优势,包括如何通过插件简化开发流程、提高代码复用率及软件质量。同时,文章还详细解释了插件的组成、安装与配置方法,并列举了一些关键的扩展点。
171

被折叠的 条评论
为什么被折叠?



