Struts2、Spring、Hibernate 高效开发的最佳实践(转)
?
?
上图中,系统只有一个 action 配置。每个业务操作,不再对应一个 ActionSupport 子类,而是对应一个 ActionSupport 子类的类方法,利用 Struts2 的动态方法特性,使得业务方法摆脱了繁琐的配置,方便的增加和删除。全面的 result 配置,解决了各种页面跳转的问题。Action 方法的起名,遵守了权限与业务模型规约,让模型选择与权限控制交给框架来实现,同时访问的操作名就是【方法名】 .action。下面,将一一对框架的各部分进行讲解。
?
?
清单 1 定义了很多规则。首先,该配置使用了动态方法调用技术,这可以使得许多的 Action 方法可以声明到一个类里,不用重复定义 Action 类,同时对业务的增加和删除可以简约到对 Action 类里方法增加和删除,增加的 Action 方法不需进行其他配置,如果业务被删除,则只需要将方法注释或者删除,非常方便。第二,配置的 package 继承于 json-default,也就是说这个包里的 action 是支持 Ajax 调用的,默认的,如果返回 ERROR、SUCCESS,则会将 Action 序列化为 JSON 返回到客户端。我们定义了各种的跳转类型,包括重定向到页面(具体的页面由 Action 里的 url 指定)、重定向到 Action、重定向到错误页面、流类型的返回等等,这为我们动态的选择返回结果数据提供了方便。那么使用上述的配置,对我们开发有什么好处呢?假设有一个新的业务,我们只需要在 Action 添加新的方法,如清单 2 所示。
清单 2. 添加新业务方法
?
?具体的配置内容,读者可以搜索 Struts2 的 validation 框架教程。
?
?
小结
本文通过一系列的讲解,讲述了如何搭建一个通用的 SSH 开发框架,陈述了其中的设计思想,由于篇幅限制,文章只介绍了框架中的重要部分和重要思想,希望读者可以从中获益。由于笔者水平有限,如有错误,请联系我批评指正。
?