Spring Roo开发初评
我们广泛使用Spring MVC 和 SpringSource 的其他产品, 来 构建企业Web 应用。 作为一家外包 公司 ,我们在前端开发严重地依赖于 Flex,我们对 Spring- BlazeDS的整合总是得心应手。 而 像 Spring Security则是常规组件 , 集成JMS 和使用 Hibernate 作为 ORM, 这是通常企业 Web 应用的基本细节 。
很多项目启动后,最初部分时间花费在项目的配置上了。Spring项目的 配置 有点繁琐, 尤其是 处理 各组件 版本。Maven 可以解决这个问题 ,但 它 对 封闭的 项目 组件模板无效 。 Spring Roo 项目出现了 。 Spring Roo是 RAD 快速应用 开发工具,这使得 使用 Spring的 J2EE开发 变得更容易 。 Spring Roo可以帮助你建立模型 / 域驱动 的 Spring 项目和 生成 基于该模型/ 域指定 的代码 。它不只是一个代码 生成 工具, 而且 整合各种 组件 ,如 Security 、 JMS 、日志、 MVC 、 测试等,这意味着开发人员 可以把精力 集中 在实体 ,而不是 组件 内部。
Spring Roo严重依赖 于 AspectJ和 Maven 。我最初的 动机是用 Spring Roo "Holy Grails , it does make life easy." 但在生成代码 后来 看,它 只是 原型,而不是 可 部署 的产品 ( 只是像 Adobe Flash Catalyst 的设计 - 代码 的 转换, 代码 丑陋 且臃肿 )。因此,我不得不卷起衣袖, 把生成的 代码 大改一番 。 我对 使用Spring Roo 的 认识 :
1、 Spring Roo的使用范围有限,在企业合作开发项目 方面无用武之地 。
2、对于简单的数据模型 工作得很 好, 但对于 复杂的 模型则不是那么回事了 。 而且 域建模 需要可视化工具 。
3、代码 跟踪很混乱 ,开发 者不能以 增量方式 写 代码。
4、 难 以同步修改 代码 。当修改了生成的代码后,再用 Spring Roo生成代码, 先前 修改 的代码被 覆盖。
5、 已与Flex/J2EE 项目工作 了相当长的 一段时间,我习惯了DAO 设计模式,可惜 Spring Roo 不支持 。
6、 生成单元测试和集成测试 案例 , 更 容易保证代码质量 QA 和依赖 Selenium进行 网络应用测试。
7、 生成 Web 层执 所需的 CRUD操作, 依赖于 Tiles框架。
此外,我必须说, Spring Roo最令人 印象深刻的一点 是,使得项目配置很容易 , 易于增减模块 ,依赖管理。