【问题标题】:Generating simple crud applications in Spring based off existing database or hibernate configurations?基于现有数据库或休眠配置在 Spring 中生成简单的 crud 应用程序?
【发布时间】:2010-12-22 11:13:20
【问题描述】:

我正在尝试学习 Spring MVC,但被 Grails 宠坏了。虽然我能够让一个基本的 Web 应用程序正常工作,但我想知道是否有任何工具可以在给定数据库或休眠数据模型的情况下创建一个 crud 应用程序?到目前为止我发现的唯一一个是 http://www.skywayperspectives.org/portal/web/guest/downloads/overview 我不确定如何获取生成的代码并将其转换为使用 maven 或 ant 进行构建过程。

【问题讨论】:

标签: java hibernate spring crud


【解决方案1】:

Telosys 完成这项工作:http://www.telosys.org

如果您有一个数据库,它将使用它作为模型来生成代码(JPA 实体等)

标准模板包可用于生成具有 CRUD 屏幕的完全可操作的 Web 应用程序

【讨论】:

    【解决方案2】:

    我从未尝试过,但看起来Appfuse Maven Plugin (AMP) 允许您通过 Maven 执行此操作。有一个mvn appfuse:gen-model 命令可以从数据库进行逆向工程,mvn appfuse:gen 可以创建其余的脚手架。

    我认为您必须在使用 Appfuse Maven 原型之一创建的项目中运行这些。您可以找到快速入门指南here 进行设置。

    Spring Roo 也有一些不错的脚手架,但它还没有从您正在寻找的数据库中进行逆向工程。您的持久性对象需要注释为 @RooEntity 对象,然后才能利用该框架的脚手架。

    【讨论】:

    • 我无法让生成命令在 App Fuse 中工作,但我查看了 Spring Roo。我决定使用 Spring Roo,我的数据库非常简单,我可以手动创建所有必要的实体。我真的很喜欢 Spring Roo,虽然我不知道我是否会将它用于生产应用程序,因为它似乎仍然缺乏良好的文档,但我认为这将在 1.0 版本中得到修复。数据库逆向工程也被列为高优先级功能请求。
    【解决方案3】:

    只需按照本教程进行操作:https://sites.google.com/site/telosystutorial/

    它将生成一个完整的 Web 应用程序 基于 Spring MVC / Spring Data / JPA

    【讨论】:

      【解决方案4】:

      试试springfuse

      【讨论】:

      • 该网站说,SpringFuse 不再运行,但是……Celerio 为 SpringFuse 提供动力的代码生成器现在是开源的。
      【解决方案5】:

      看起来 LightAdmin pluggable administration interface 对于基于 Spring/JPA 的应用程序将是您的不错选择。它有一个用于接口配置的内置 Java DSL,您唯一需要做的就是下载一个 jar 或声明 Maven 依赖项,通过 web.xml 启用您的域管理(指向包含您的 JPA 实体的包)并创建 @Administration实体的配置类。

      因此,您将拥有一个用于 CRUD、过滤等的简洁 UI。

      这是一个配置示例:

      @Administration( Customer.class )
      public class CustomerAdministration {
      
        public static EntityMetadata configuration(EntityMetadataBuilder configurationBuilder ) {
          return configurationBuilder.nameField( "firstname" ).build();
        }
      
        public static ScreenContext screenContext( ScreenContextBuilder screenContextBuilder ) {
          return screenContextBuilder
                 .screenName( "Customers Administration" )
                 .menuName( "Customers" ).build();
        }
      
        public static FieldSet listView( final FieldSetBuilder fragmentBuilder ) {
          return fragmentBuilder
                 .field( "firstname" ).caption( "First Name" )
                 .field( "lastname" ).caption( "Last Name" ).build();
        }
      

      【讨论】:

      • 这个项目看起来很有希望,但它是否被支持? GitHub 上的最新提交是两年前。它似乎是死的比活的还多。
      【解决方案6】:

      我也进行了同样的搜索。最后看看JBoss Seam。 Seam 似乎有一个数据库模式导入并生成必要的后端和前端代码。 Spring Roo 接缝与 JBoss Seam 非常相似,只是 Seam 更长,更成熟。

      【讨论】:

        【解决方案7】:

        如果你想学习带有逆向工程的 Spring MVC,请访问 minuteproject track REST-SpringMVC

        它“智能”对您的数据库架构进行逆向工程,提供

        • JPA2
        • 带有弹簧集成的 AO
        • spring MVC 和 REST 集成

        智能逆向工程意味着您的 Java 实体不必遵循您的 DB 约定(Ex table T_USER 可以提供 Java User 类...)

        【讨论】:

          【解决方案8】:

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

          • CRUD Rest API
          • API 文档
          • AngularJS CRUD 管理用户界面
          • Rest API 用于检索 审核信息 和相关的单元测试(如果您使用 Hibernate Envers 审核您的实体)。

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

          提供了许多基于 Spring PetClinic 数据模型的示例。

          【讨论】:

            【解决方案9】:

            看看Celerio。这是模板Angular 2 + PrimeNG + Spring Boot Web 应用程序的链接。

            Celerio 是用于数据驱动应用程序的代码生成器工具。它可以反转数据库模式并生成基于 CRUD 的高级应用程序。

            以下screencast 向您展示了预期。

            【讨论】:

              猜你喜欢
              • 2019-01-19
              • 2014-02-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-01-01
              • 1970-01-01
              相关资源
              最近更新 更多