如何生成Spring WebMVC CRUD API

时间:2014-10-15 09:21:59

标签: java spring code-generation

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

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

这是否有项目? 创造这样的东西最好的方法是什么? 我曾经想过:

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

你会建议什么?

5 个答案:

答案 0 :(得分:3)

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

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

除了生成代码的新颖因素之外,该项目的另一个重要特征是它非常活跃,如releases

所示。

答案 1 :(得分:3)

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

答案 2 :(得分:2)

答案 3 :(得分:1)

您可以查看 crud-rest-gen 项目,其中介绍了如何使用 crud-maven-plugin 生成:

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

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

答案 4 :(得分:0)

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设置。