Java Spring/Hibernate实体管理Web界面/UI

Java Spring/Hibernate实体管理Web界面/UI,java,spring,hibernate,scaffolding,Java,Spring,Hibernate,Scaffolding,我们有一个服务器应用程序,它通过多种协议向特定的客户机UI公开某个模型以及基于该模型构建的一组服务。这是一种服务器应用程序,一旦设置好,就不需要太多的手动干预。但是,偶尔(特别是首次部署解决方案时),必须创建和链接某些模型对象 这个解决方案构建在Spring、SpringMVC和Hibernate(以及其他东西)的基础上,使用JPA注释实现ORM 我的问题:有没有人知道一个框架可以让我快速设置(理想情况下完全通过配置)一个web界面来管理(CRUD)实体?这不需要花哨,也不需要花哨的安全性(我可

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

这个解决方案构建在Spring、SpringMVC和Hibernate(以及其他东西)的基础上,使用JPA注释实现ORM

我的问题:有没有人知道一个框架可以让我快速设置(理想情况下完全通过配置)一个web界面来管理(CRUD)实体?这不需要花哨,也不需要花哨的安全性(我可以从应用服务器内部处理安全性)。但是,它需要能够处理实体之间的复杂关系(集合映射、枚举等)

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

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

  • 显然,如果我们有一个基本的web界面(我们不需要自己开发)来处理这类任务(创建、更新、删除等),这会更容易些。它是为CRUD web应用程序的快速开发而构建的。它基于Groovy、Spring和Hibernate。

    为了详细介绍@duffymo,Grails有一个引导机制,您可以在应用程序启动时插入所需的参考数据。您可以编写代码,这样您就可以检测参考数据是否在引导中,并且只在需要时插入;这件事一做完就不必操心了

    它特别优雅的代码可以检测它运行的环境,如果需要,可以在不同的环境中执行不同的操作

    最后,如果您使用Grail的脚手架机制,它将为您生成默认的Crud屏幕。您可以在几分钟内运行CRUD操作。

    ,而且,所有这些操作都可以完成您需要的操作。

    看起来,基于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();
      }
    

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

    它允许使用可自定义的Velocity模板从现有数据库模型生成web app CRUD屏幕:


    请参阅教程:(您可以使用SpringMVC+JPA作为示例)

    谢谢,我将对此进行研究。Grails将如何与我当前的Spring/Hibernate项目集成?OpenXava看起来是一个赢家:)LightAdmin今天不支持enums(),今天已经修复。请查看它)相关:如果这样一个工具能够处理用户/组/角色,那就太好了。如果没有,任何人都可以编辑数据:(