STRUTS2 Convention:完全零配置的高效插件

需积分: 9 14 下载量 82 浏览量 更新于2024-11-18 收藏 8KB TXT 举报
"STRUTS2 Convention零配置" STRUTS2 Convention 插件是一种用于简化Struts2应用程序配置的方法,自Struts2.1版本起,它替代了Codebehind插件,成为官方推荐的零配置解决方案。Convention插件的核心理念是通过遵循一定的命名和包结构规则,自动为应用中的类和方法生成配置,从而极大地减少了手动编写XML配置文件(如struts.xml)或使用注解的需求。 Convention插件的运作原理基于“约定优于配置”的原则,它会自动扫描指定的包路径,查找符合特定模式的类和方法,并将它们映射为Struts2的Action和结果。默认情况下,插件会查找以"Action"结尾的类,并假设此类是Action的实现。同时,它还会寻找以"execute"方法作为默认执行方法,以及其他以动词命名的方法(如"get", "save", "delete"等),这些方法将被映射为不同的HTTP请求类型。 在使用Convention插件时,有几个关键的配置属性可以调整其行为: 1. `struts.convention.exclude.packages`:这个属性允许你指定需要排除的包名,避免扫描这些包下的类。例如,如果你设置为"com.example.excluded", 那么所有在"com.example.excluded"包及其子包下的类都不会被自动配置。 2. `struts.convention.package.locators`:这个属性定义了Action的定位器,用于确定Action的名称和路径。默认情况下,Action的名称通常是类名去掉"Action"后缀,而路径是包名的路径形式。你可以通过设置此属性添加自定义的定位器。 3. `struts.convention.action.packages`:这个属性用来指定哪些包下的类被视为Action。如果你的应用中有多个包需要被扫描,可以在这里列出,以逗号分隔。 4. 对于Action名称的生成,Convention插件会自动处理。例如,类名为"LoginAction"的Action,ActionName默认为"login","GetBooksAction"的ActionName为"get-books",以此类推。对于HTTP方法的映射,通常"execute"方法对应GET请求,其他以动词命名的方法则映射到相应的HTTP方法,如"addEmployee"对应POST请求。 5. 如果需要覆盖默认的ActionName,可以通过在类上添加注解`@Action`,并指定value属性来定义自定义的Action名称。 STRUTS2 Convention插件通过自动化配置极大地简化了开发流程,提高了开发效率。开发者只需要关注业务逻辑,而不必花费大量时间在配置文件上。然而,这也意味着应用的可预测性和可定制性可能降低,因为配置的灵活性受到了限制。因此,理解并合理使用Convention插件的配置选项,可以在保持便利的同时,更好地控制和优化应用的行为。