【问题标题】:How to generate Spring WebMVC CRUD API如何生成 Spring WebMVC CRUD API
【发布时间】:2014-12-10 07:33:54
【问题描述】:

我想要做的是从数据库表/Hibernate JPA 实体创建一个完整的 Spring WebMVC CRUD API,到现有的 Maven Web 项目中。 准确地说,我想要生成的内容:

  • Spring WebMVC 控制器(映射和实现)
  • JPA 实体(如果未给出)- ofc。使用大多数 IDE 内置的标准生成
  • Spring Data JPA 存储库
  • 可选择修改一些其他文件(例如,将实体添加到现有的 persistence.xml)

有这方面的项目吗? 创造这样的东西的最佳方法是什么? 我的想法:

  • 独立 Java APP
  • Maven 子生成器
  • Eclipse 插件
  • 标准代码生成方法(例如 Acceleo 插件)

你有什么建议?

【问题讨论】:

    标签: java spring code-generation


    【解决方案1】:

    Spring-roo (link) 具有这些功能,如果您愿意,可以从项目中删除 spring-roo 并保留 java-spring 项目。

    链接示例:

    roo> hint
    roo> project --topLevelPackage com.foo
    roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY         
    roo> entity jpa --class ~.Timer --testAutomatically
    roo> field string --fieldName message --notNull
    roo> hint web mvc
    roo> web mvc setup
    roo> web mvc all --package ~.web
    roo> selenium test --controller ~.web.TimerController
    roo> web gwt setup
    roo> web gwt all --proxyPackage ~.client.proxy --requestPackage ~.client.request          
    roo> perform tests
    roo> quit
    

    如您所见:创建项目、设置 jpa 提供程序、创建实体、创建 MVC 控制器、测试和一些 GWT 设置。

    【讨论】:

      【解决方案2】:

      虽然Spring Roo 会为你生成一个CRUD 应用程序,但是它生成的代码已经过时了。如果我在哪里开始一个新项目,我肯定会远离它(至少在发布新版本之前)。

      我建议你看一下JHipster,这是一个Yeoman,它将使用一些非常热门的技术(如 Spring Boot、AngularJS 等)生成一个 CRUD 应用程序

      除了生成代码的新颖性因素之外,该项目的另一个重要特点是它非常活跃,这从releases 可以看出

      【讨论】:

        【解决方案3】:

        部分答案: 如果您可以生成 JPA 实体和 Spring Data JPA 存储库,则可以使用 Spring Data REST 将存储库公开为完整的 CRUD REST API。

        【讨论】:

        • 这很有帮助,其他部分(和存储库)很可能是使用 Spring ROO 生成的,或者如果我可以使用 Maven 子生成器来帮助它
        【解决方案4】:

        【讨论】:

          【解决方案5】:

          您可以查看 crud-rest-gen 项目,该项目解释了如何使用 crud-maven-plugin 生成:

          • CRUD Rest API
          • API 文档
          • HTML5/AngularJS CRUD 管理 UI
          • 如果您使用 Hibernate Envers 审计您的实体,则用于检索审计信息和相关单元测试的 Rest API

          您只需提供包含 JPA 实体的数据模型。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-03-13
            • 2020-05-05
            • 2018-10-07
            • 2018-02-28
            相关资源
            最近更新 更多