【问题标题】:Spring/Hibernate Entity Management Web Interface/UISpring/Hibernate 实体管理 Web 界面/UI
【发布时间】:2011-05-27 15:52:11
【问题描述】:

我们有一个服务器应用程序,它通过多种协议向特定的客户端 UI 公开某个模型以及基于该模型构建的一组服务。这是一种服务器应用程序,一旦设置完成,就不需要太多人工干预。但是,有时(特别是在首次部署解决方案时),必须创建和链接某些模型对象。

这个解决方案建立在 Spring、Spring MVC 和 Hibernate(以及其他东西)之上,使用 JPA 注释来处理 ORM 的东西。

我的问题: 有没有人知道一个框架可以让我非常快速地设置(最好是通过配置)一个 Web 界面来管理 (CRUD) 实体?这不需要必须是花哨的,并且不需要需要花哨的安全性(我可以从应用服务器内部处理安全性)。然而,它需要能够处理实体之间的复杂关系(集合映射、枚举等)。

例如:应用程序有一个实体用户,它具有与之关联的典型角色实体(每个用户有 1 个角色)。目前,在不从头创建我们自己的 web 层的情况下定义它的唯一方法是:

  1. 创建 SQL 语句以导入新用户(及其角色)
  2. 有某种脚本(例如使用 Ant),使用 Spring/Hibernate 配置来关联和保存新的 Role() 和 User() 对象

显然,如果我们有一个基本的 Web 界面(我们不需要自己开发),它会随服务器一起处理这些任务(创建、更新、删除......)。

【问题讨论】:

标签: java spring hibernate scaffolding


【解决方案1】:

Naked ObjectsOpenXavaSpring Roo,都可以满足您的需求。

【讨论】:

  • OpenXava 看起来像个赢家 :)
【解决方案2】:

对于 CRUD 屏幕生成,您可以使用 Telosys 工具

它允许使用可自定义的 Velocity 模板从现有数据库模型生成 Web 应用程序 CRUD 屏幕:https://sites.google.com/site/telosystools/

看教程:https://sites.google.com/site/telosystutorial/(你可以使用 Spring MVC + JPA 为例)

【讨论】:

    【解决方案3】:

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

    这是一个配置示例:

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

    【讨论】:

    【解决方案4】:

    详细说明@duffymo,Grails 有一个引导机制,您可以在其中插入应用程序启动时所需的参考数据。您可以编写代码,以便您可以检测引导程序中的引用数据,并且仅在需要时插入;一旦完成,它就会放手。

    它特别优雅的代码可以检测它运行的环境,如果需要,在不同的环境中做不同的事情。

    最后,如果你使用 Grail 的脚手架机器,它会为你生成默认的 Crud 屏幕。您可以在几分钟内启动 CRUD 操作。

    【讨论】:

    • 谢谢,我会调查的。 Grails 如何与我当前的 Spring/Hibernate 项目集成?
    【解决方案5】:

    我会尝试 Grails 来做到这一点。它是为快速开发 CRUD Web 应用程序而构建的。它基于 Groovy、Spring 和 Hibernate。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-03
      • 2014-09-06
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      相关资源
      最近更新 更多