Struts2 Convention插件:零配置实现详解
需积分: 9 108 浏览量
更新于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 上传
2014-01-14 上传
2011-11-13 上传
2012-09-06 上传
2013-06-14 上传
2019-03-21 上传
2019-03-27 上传
jfzshandong
- 粉丝: 1
- 资源: 29
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率