【发布时间】:2012-02-28 20:40:00
【问题描述】:
【问题讨论】:
-
试一试看看?这个问题让我觉得有些模糊。
标签: java spring-roo rad
【问题讨论】:
标签: java spring-roo rad
这些工具的相似之处在于它们都是帮助设置和配置项目的命令行工具,并且都具有生成代码的能力。 但是有一些主要的设计差异:
1) Forge 旨在用于任何类型的 Maven 项目。 Roo 与 Spring 紧密相关。因为 Forge 更通用,您可以为您在项目中使用的任何技术找到或编写插件。 Roo 也是如此,但仅限于 Spring 之上的技术。你可以说 Forge 是一个(更)通用框架,用于构建适用于 Maven 项目的插件,而 Roo (只是)一个 Spring 工具。
2) Roo 也是一个编程框架,而不仅仅是一个工具。代码生成大量使用 AspectJ 使代码生成对程序员几乎是不可见的,并提供了仅在基于动态语言的框架中才能找到的功能(例如,实体上的动态查找器方法)。这可能是好事也可能是坏事。这很好,因为它功能强大且更优雅,因为您不会“看到”生成的代码。不好的一点是它会大量锁定 Roo。这在技术上是不正确的,因为它只是“普通”的 AspectJ,但它与普通的 Java/Spring 代码相去甚远。 AspectJ 也不能在所有 IDE 中正常工作(Eclipse 和 IntelliJ 都可以)。由于这种编程模型,我永远不会使用 Roo。如果我想要一个具有动态语言特性的框架,我会使用 Grails,而不是半途而废。当然这只是我个人的看法。
Forge 中的代码生成更像是传统的代码生成方式,尽管存在缺陷,但您永远不会陷入任何非标准的事情。内置代码生成基于纯 Java EE 6。
【讨论】: