我很幸运能够从 Grails 重新开始。但是,很多人问我如何将 Groovy 和/或 Grails 添加到旧版 Java/JSP Web 应用程序中。对于如何最好地将 Groovy 和 Grails 包含到大型遗留应用程序中,人们是否有经验或建议?
6 回答
这篇 IBM Developerworks 文章详细介绍了如何将 Grails 与您的遗留数据库一起使用。
可以帮助将遗留数据库映射到 grails 域对象的工具是GRAG - Grails 应用程序生成器。这是一个方便的工具,可以帮助您生成映射类。
第三种选择是不将 Grails 用于 gorm/domain 层。相反,因为它与 Java 配合得非常好,所以您可以创建服务来调用现有的遗留 Java 代码以实现业务逻辑和持久性。
我希望其中一种方法对您有用。
我见过的一件事是使用 Grails 作为企业 Java 应用程序的管理界面。这不完全是您所要求的,因为没有集成。只有一组需求很容易在 Grails 中快速划分和开发。实际上,它们是独立的应用程序,但使用相同的数据。
我发现这篇文章描述了让 Groovlets 和 gsp 工作,指定 web.xml 更新和项目所需的 jar 文件。
http://www.ibm.com/developerworks/java/library/j-pg03155
我将以下 jar 文件添加到我的项目中并且 groovlets 工作。
groovy-1.5.7.jar
asm-2.2.jar
antlr-2.7.6.jar
我还没有 gsp 的工作。
我将从在 jsps 和 grails 应用程序之间共享数据模型开始(grails 可以使用普通的 Java 类和 hibernate 配置运行,因此如果您已经在使用 hibernate,那么重用 hibernate 类应该不难)。然后我会将每个 jsp/servlet原样迁移到 grails。如果您已经在使用 spring,它应该会让事情变得更容易,因为您可以共享相同的应用程序上下文。
根据应用程序的大小和其他要求,重写整个内容可能会更好,特别是如果遗留应用程序不使用 spring 或 hibernate。
我想这取决于“添加 grails/groovy”到应用程序的含义——因为 grails 是一个完整的堆栈,如果“添加”是指用新的替换旧的,那么可能值得重写它。
正如其他人所说,Grails 是一个完整的堆栈,因此将 Grails 添加到现有 Java 应用程序可能不是您想要的。然而,将 Java 添加到现有的 Grails 应用程序是微不足道的。将 Groovy 添加到现有的 Java 应用程序可能也不会太难。
这在很大程度上取决于您正在谈论的 Java 应用程序的类型。Grails 是基于 Spring MVC、Hibernate 和类似的标准 Java 技术构建的,因此如果您的 Java 应用程序使用所有这些技术,那么使用一些遗留 Java 代码将应用程序转换为 Grails 可能很容易。