【发布时间】:2010-12-30 03:18:55
【问题描述】:
我正在寻找有经验的用户对 spring roo 和 appfuse 的反馈。您认为哪个更适合逆向工程数据库表和生成服务层、dao 层和 jpa 实体?
如果我没记错的话,spring roo 目前不能对数据库进行逆向工程。
【问题讨论】:
标签: java spring spring-roo appfuse
我正在寻找有经验的用户对 spring roo 和 appfuse 的反馈。您认为哪个更适合逆向工程数据库表和生成服务层、dao 层和 jpa 实体?
如果我没记错的话,spring roo 目前不能对数据库进行逆向工程。
【问题讨论】:
标签: java spring spring-roo appfuse
只是一个快速更新,以通知所有现在偶然发现此线程的用户(或至少在今天之后:));在新的 1.1.0 版本中,Spring Roo 现在确实支持开箱即用的增量数据库逆向工程。请参阅此版本annoucement。
作为对实际问题的评论:我不认为在实际的实体生成中两者中的任何一个都比另一个更好,但是除了实体生成之外,AppFuse 和 Spring Roo 之间当然存在很大差异.如果你真的需要 DAO,这是 AppFuse 中开箱即用的东西,部分放在 Spring Roo 中,但 Spring Roo 也有一个很棒的插件(Hades 插件),它在这方面做得很好,也许甚至比 AppFuse 还要好。以我的拙见,选择 AppFuse 的主要原因是,如果您需要另一个 Web 框架(即 Wicket.Tapestry 或 JSF)作为前端,那么 Spring MVC 或 GWT,因为这些是 Spring Roo 中目前唯一受支持的 Web 框架(不过还有更多,比如 Flex 等)。您可能会选择 AppFuse 的其他原因是,如果您想使用具有完整智能感知和代码完成支持的 IDE,但不想使用 Eclipse(您可以使用其他 IDE,并且构建与 Spring Roo 配合得很好,但是由于对于 Netbeans 无法识别的 AspectJ 文件,其他 IDE 和 Eclipse 目前不能很好地为 Spring Roo 生成/管理的文件完成代码完成。
但是,如果您不介意 Eclipse(或者更好的是 Spring Tools Suite)并且确实想使用 GWT 和/或 Spring MVC,我会推荐 Spring Roo。以我的拙见,选择 Spring Roo 的主要原因是更高的生产力、更好的支持、更高的动力和活动、更低的学习曲线(用于快速生成 CRUD 应用程序),当然还有 Rails 之类的命令外壳,您可以从中快速设置和配置您的应用程序。
附言。请注意,我已经一年多没有积极使用 AppFuse,所以我对 AppFuse 的了解有点生疏。
【讨论】:
Roo 很适合快速放置东西(往返是惊人的)..但是缺乏开箱即用的服务层提供使我的需求陷入困境。我知道我可以像文档中提到的那样做@Services 注释和适当地放置代码(启动时工作太多)。我希望 Roo 给我一个选择,让我拥有一个 services+dao 层……开箱即用。 那会(已经)/使 Roo 成为杀手级应用,恕我直言
【讨论】:
ROO-435 问题实际上是我们最需要的功能,所以我将在接下来的几周内在Spring Roo 中实现它。同时,Jason 建议使用 Eclipse Hibernate 工具来创建 JPA 注释实体是一个完全兼容 Roo 的直接解决方案。
【讨论】:
您是正确的,您不能在 Roo 中对数据库进行逆向工程。您可以投票给an open JIRA item for this。
但是,您可以尝试使用Eclipse Hibernate tools 对您的数据库进行逆向工程,然后修改这些对象以使其成为 Roo 实体。不过,这可能需要大量的手工工作。
对于 AppFuse,AppFuse Maven plugin 可以从现有数据库为您创建整个 AppFuse 项目。不过我不确定它目前是否正常工作,因为我提到它的最后一个人说他们无法让它工作。
根据您的要求,您可能还想试试Grails framework。有一个名为 GRAG 的工具可以从数据库中对 Grails 应用程序进行逆向工程。
【讨论】: