我正在寻找有经验的用户对spring roo和appfuse的反馈。您认为哪种方法可以更好地逆向工程数据库表并生成服务层,dao层和jpa实体?
如果我没弄错的话,spring roo目前无法对数据库进行逆向工程。
答案 0 :(得分:3)
快速更新,告知所有用户现在偶然发现此线程(或至少在今天之后:);在新的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工具套件)并且想要使用GWT和/或Spring MVC,我会推荐Spring Roo。在我看来,Spring Roo的主要原因是更高的生产力,更好的支持,更高的动力和活动,更低的学习曲线(用于快速CRUD应用程序生成),当然还有Rails就像命令shell一样,你可以从中获得快速设置和配置您的应用程序。
聚苯乙烯。请注意,我没有积极使用AppFuse超过一年,所以我对AppFuse的了解有点生疏。
答案 1 :(得分:2)
Roo很快就能把事情搞砸了(往返是惊人的)......但缺乏开箱即用的服务层可以满足我的需求。我知道我可以执行@Services注释并按照文档中的说明正确放置代码(启动时工作量太大)。我希望Roo给我一个选择,让他有一个服务+ dao层......开箱即用。 那会(使得)成为一个杀手级应用程序,imho
答案 2 :(得分:1)
你是对的,你不能在Roo中对数据库进行逆向工程。您可以投票an open JIRA item for this。
但是,您可以尝试使用Eclipse Hibernate tools对数据库进行反向工程,然后修改这些对象以使其成为Roo实体。这可能会涉及大量的手工工作。
对于AppFuse,有AppFuse Maven plugin可以从现有数据库为您创建整个AppFuse项目。我不确定它目前是否正常工作,因为我提到它的最后一个人说它们无法使它工作。
根据您的要求,您可能还想尝试Grails framework。有一个名为GRAG的工具可以从数据库中反向设计Grails应用程序。
答案 3 :(得分:1)
ROO-435问题实际上是我们最需要的功能,因此我将在接下来的几周内在Spring Roo内实施该问题。与此同时,Jason建议使用Eclipse Hibernate工具创建JPA注释实体,这是一个完全与Roo兼容的直接解决方案。