【问题标题】:generate service /dao layer for GWT/Spring/Hibernate/PostgreSQL为 GWT/Spring/Hibernate/PostgreSQL 生成服务 /dao 层
【发布时间】:2010-06-24 16:31:53
【问题描述】:

我们正在使用 GWT 2.0(不是 AppEngine)、Spring 和 Hibernate 开发一个 web 应用程序,并尝试通过自动生成尽可能多的代码来快速启动。

我看过spring roo vs appfuse generate service /dao layer。我尝试了 appfuse,但这对我不起作用;此外,GWT 的 roo 还没有完全发布,因为它是里程碑版本。

如果一个工具可以为我生成服务层和 DAO 层,我应该能够完成实际的业务逻辑和 UI 布线——尽管看起来如果我愿意再等 6 个月,当前的1.1M1 版本的 Roo 可以让我到达那里,但我需要马上做一些事情。

有什么建议吗?

非常感谢

【问题讨论】:

标签: java hibernate spring code-generation


【解决方案1】:

我自己没用过,不过Firestorm/DAO 看起来很有前途...

【讨论】:

  • 谢谢。我正在寻找 a) 域 b) DAO c) 由该工具生成的服务层。 Firestorm 只能做 DAO。
  • 想一想,我过去也使用 Oracle 的专有 ADF 框架完成了这项工作。我不建议使用 ADF,但它非常有能力基于具有休眠/toplink 的现有数据库生成 DOA 和服务层。 (您需要将 JDeveloper 用于生成部分)。可能值得调查...
【解决方案2】:

当前版本的 AppFuse 和 Spring roo 应该提供足够的功能来生成所需的代码。

由于你要生成 Service 和 Dao 层,这里没有任何 GWT 相关的内容。

所以再试一次 AppFuse,或者问一个关于 AppFuse 的具体问题的问题。

【讨论】:

    【解决方案3】:

    Grails 那么GWT plugin 呢?

    【讨论】:

    • 谢谢!那是行不通的。我曾建议使用 Rails,但这还没有被认为是“足够流行”的。 Grails 可能有更好的机会,但社区不如 Rails 或 Plain Java。因此,我可能无法推荐“Grails 和 GWT”组合。还是谢谢!
    • @anjanb:我能理解。感谢您的反馈,祝您好运!
    【解决方案4】:

    根据我对服务层的理解,我不知道您将如何生成它;如果编写得当,它应该非常基于您的业务模型,并且根本不应该遵循您的数据库模式。与 DAO 不同(可以说,我实际上也不是一直拥有 DAO 的一对一实体),您不应该为每个实体提供服务,而是您的服务应该使用实体作为其 API 的一部分来执行单元工作,或提供作为控制逻辑和数据访问之间的抽象层的业务对象。它也可以是两者的混合体。这取决于应用程序的复杂程度,以及您的 DAO/实体与数据库的密切程度。

    编辑:根据您的评论和急切的心情,我将使用其他帖子中提到的工具来生成您的 DAO 层,这将为您提供一个非常好的开始。然后,我将创建一个包含所有 DAO 的服务对象。从那里,您将有权在可测试的容器(服务对象)中执行所有业务逻辑。这将防止您将其放入控制器中,并且将提供一个人们可以看到所有业务逻辑方法的地方。随着它的增长,您会看到冗余,以及以后可以分成不同服务对象的逻辑单元。

    希望您有时间这样做,但是当我非常着急时,我希望我所有的业务复杂性都放在一个服务对象中,而不是许多控制器。稍后进行的重构会容易得多。而且您仍然可以轻松地测试方法,我建议您不要着急,相信我,在服务方法上编写测试比通过部署和检查来测试它们更快。

    【讨论】:

    • 我们急于部署一些东西。一般来说,你说的大部分都是有道理的。考虑到匆忙,我想要一些东西在没有太多调试的情况下启动并运行。缺陷可以稍后修复(技术债务)。我真正想要的是在完成数据库表/视图后生成的 DAO、域对象、配置(注释)。希望能说明白吗?
    【解决方案5】:

    查看fastcode。这很糟糕。它需要你的 DAO,你可以使用 myEclipse 自动生成,并将它们插入到 fastcode 中,生成漂亮的服务层接口。它使用 Spring 作为选项来完成这一切。
    很酷的事情是,随着数据库的变化(与更新的 DAO 同步),您可以一次又一次地生成服务层

    【讨论】:

      猜你喜欢
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 2012-02-14
      • 1970-01-01
      • 2013-05-16
      • 2012-01-25
      • 1970-01-01
      相关资源
      最近更新 更多