Struts2 Convention插件:零配置实现详解
需积分: 9 176 浏览量
更新于2024-09-17
收藏 51KB DOC 举报
"struts零配置,使用Convention插件实现自动配置"
Struts框架是一个流行的Java Web应用程序开发框架,主要用于构建MVC(Model-View-Controller)架构的应用。在传统的Struts2配置中,开发者需要手动编写XML配置文件(如struts.xml)来定义Action、结果类型、拦截器等。然而,从Struts2.1版本开始,引入了"零配置"的概念,即通过 Convention 插件来减少或完全避免XML配置。
Convention 插件是Struts2的一个扩展,它的目标是根据一定的约定自动配置Action类和相关的映射。这大大简化了项目配置,提高了开发效率,使得开发者可以更加专注于业务逻辑而不是配置细节。
**使用Convention插件**
要使用Convention插件,首先需要将`struts-Convention-plugin-2.1.6.jar`添加到项目的`WEB-INF/lib`目录下。然后,Convention插件会自动执行以下操作:
1. **自动扫描Action类** - 它会查找位于`action`, `actions`, `struts`, `struts2`包下的所有Java类。如果一个类实现了`com.opensymphony.xwork2.Action`接口,或者类名以`Action`结尾,那么这个类就会被视为一个Action。
2. **配置Action映射** - 默认情况下,类名会被用作Action的名称,包名会转换为命名空间。例如,`actions.fore.LoginAction`会被映射到`/fore/login`。
3. **自定义配置** - 开发者可以通过设置系统属性或在`struts.properties`文件中定义以下常量来调整行为:
- `struts.Convention.exclude.packages`: 用于指定不想被扫描的包,这些包下的类将不会被映射为Action。
- `struts.convention.package.locators`: 指定搜索Action的根包,可以改变默认的包定位规则。
- `struts.convention.action.packages`: 添加额外的包,让Convention插件在默认包之外继续搜索Action类。
**注意事项**
理解并合理使用`struts.convention.package.locators`和`struts.convention.action.packages`这两个常量至关重要。它们可以改变Action的命名空间和扫描范围,但过度使用或错误配置可能会导致意料之外的结果。例如,修改`struts.convention.package.locators`会影响到Action的默认命名空间,而`struts.convention.action.packages`则可以扩展扫描的包列表。
在实际应用中,例如Action类位于`com.fun.action`包下,如果不做任何配置,那么按照默认约定,这个Action的命名空间将会是`com/fun/action`。开发者可以根据需求调整这些常量,以满足特定的项目结构和路由规则。
Struts2的零配置特性通过Convention插件为开发者提供了更简洁、更灵活的配置方式,减少了XML配置的工作量,让Web应用的开发变得更加高效。然而,这也要求开发者对这些约定和配置选项有深入的理解,以便正确地利用这一功能。
2014-03-21 上传
2019-04-17 上传
2017-05-03 上传
131 浏览量
2011-11-13 上传
122 浏览量
2013-06-14 上传
168 浏览量
2019-03-27 上传
jfzshandong
- 粉丝: 1
- 资源: 29
最新资源
- 09年计算机考研大纲
- Preview of Web Services Reliable Messaging in SAP Netweaver Process Integration 7.1.pdf
- Implementing a Distributed Two-Phase-Commit Scenario with Web Services and SAP NetWeaver PI 7.1.pdf
- NiosII step by step (1-10)
- Mantis安装经验总结
- 英语词根词缀记忆大全[2].doc
- 赛灵思DSPFPGAWorkbook_print
- RFC 3261 SIP spec.
- 无线网络规划(白皮书)
- oracle函数大全
- 大学英语精读第二册课后翻译答案
- myEclipse教程
- MIT的人工智能实验室是如何做研究的
- 关于Linux系统下的软件安装
- c++标准程序库 简体中文
- Web+Service学习.doc