什么是 erupt ?

erupt 是一个低代码 全栈类 框架,它使用 Java 注解 来生成页面以及增、删、改、查、权限控制等后台功能,不需要懂前端,也不需要写繁琐的CURD,自动创建表结构,controller / service / sao / mapper 文件都不用创建,极大减少开发工作量,将后台开发速度提升到极致。

取代代码生成器,开发后台管理系统更优解!

开源项目地址:https://gitee.com/erupt/erupt
入门案例地址:https://gitee.com/erupt/erupt-example.git
官网文档:https://www.yuque.com/yuepeng/erupt/foa2bt
在线体验地址:https://www.erupt.xyz/demo/#/passport/login

项目部署

环境要求

• Java 版本 1.8及以上
• Spring Boot 版本 2.0 及其以上
• 浏览器要求 IE11 及以上,或其他现代浏览器

前置知识

• Java、Tomcat、Maven
• Spring Boot、Hibernate
• Database:SQL + MySQL / PostgreSQL / SQL Server / H2 / Oracle

添加依赖

<!--用户权限管理-->
<dependency>
  <groupId>xyz.erupt</groupId>
  <artifactId>erupt-upms</artifactId>
  <version>${erupt.version}</version>
</dependency>
<!--接口数据安全-->
<dependency>
  <groupId>xyz.erupt</groupId>
  <artifactId>erupt-security</artifactId>
  <version>${erupt.version}</version>
</dependency>
<!--后台WEB界面-->
<dependency>
  <groupId>xyz.erupt</groupId>
  <artifactId>erupt-web</artifactId>
  <version>${erupt.version}</version>
</dependency>

erupt版本要和SpringBoot对应一致

部署到本地之后,唯一需要注意的是他用的MySQL版本可能是8,所以如果你本地还是MySQL5.7,需要自己手动锁定版本号!准备工作完成之后,启动主启动类!在这里插入图片描述
这个框架使用的持久层是JPA,所以他会自动的建表(建库还是要自己来的),最新版的示例代码更完善,只要把官网的实例跑一下看一下,应付一般的需求还是OK的!

自定义菜单

启动成功后,前往系统管理 → 菜单维护 → 新增,将已定义好的演示类添加到菜单中,填写数据如下:
菜单名称 菜单类型 类型值(类名) 描述

菜单名称 菜单类型 类型值(类名) 描述
入门示例 表格 Simple
文章管理 表格 Article
树示例 TreeView
组件示例 表格 Component 各类组件与事件代理使用方法
复杂示例 表格 Complex 动态下拉列表与定义按钮等功能
多行操作 功能按钮 ComplexBtn 控制 Complex 多行操作 按钮的权限,最好隐藏
链接 链接 https://www.erupt.xyz
新页面 新页签 https://github.com/erupts/erupt

在这里插入图片描述
在这里插入图片描述
创建完成之后,点击上面的保存!然后刷新浏览器看下效果!
在这里插入图片描述
新增:在这里插入图片描述
修改:在这里插入图片描述
对比若依、jeecg等代码生成框架,erupt最大的优势就在于基于纯注解开发,在开发后台管理系统方面,有着相当强的优越性!并且组件丰富,足以应对一般开发过程中,企业常见需求!

补充上传下载组件

package com.example.demo.model;

import xyz.erupt.annotation.Erupt;
import xyz.erupt.annotation.EruptField;
import xyz.erupt.annotation.sub_erupt.Power;
import xyz.erupt.annotation.sub_field.Edit;
import xyz.erupt.annotation.sub_field.EditType;
import xyz.erupt.annotation.sub_field.View;
import xyz.erupt.annotation.sub_field.sub_edit.Search;
import xyz.erupt.jpa.model.BaseModel;

import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;

/**
 * @author yuepeng
 * @date 2020/12/28 11:24
 */
@Table(name = "demo_simple")
@Entity
@Erupt(name = "简单示例",
        power = @Power(add = true, delete = true,
                edit = true, query = true,
                importable = true, export = true))
public class Simple extends BaseModel
{

    @EruptField(
            views = @View(title = "文本"),
            edit = @Edit(title = "文本", notNull = true, search = @Search)
    )
    private String input;

    @EruptField(
            views = @View(title = "数值", sortable = true),
            edit = @Edit(title = "数值", search = @Search)
    )
    private Float number;

    @EruptField(
            views = @View(title = "布尔"),
            edit = @Edit(title = "布尔")
    )
    private Boolean bool;

    @EruptField(
            views = @View(title = "时间"),
            edit = @Edit(title = "时间", search = @Search(vague = true))
    )
    private Date date;


    @EruptField(
            views = @View(title = "滑动条"),
            edit = @Edit(title = "滑动条", type = EditType.SLIDER, search = @Search(vague = true))
    )
    private Integer slide;

    @EruptField(
            views = @View(title = "地图"),
            edit = @Edit(title = "地图", type = EditType.MAP)
    )
    private String map;
}

官方文档对@Power做了说明

public @interface Power {
    boolean add() default true; //数据新增功能

    boolean delete() default true; //数据删除功能

    boolean edit() default true; //数据修改功能

    boolean query() default true; //输入查询功能

    boolean viewDetails() default true; //数据查看功能

    boolean export() default false; //数据导出功能

    boolean importable() default false; //数据导入功能

    //实现此接口动态控制权限
    Class<? extends PowerHandler> powerHandler() default PowerHandler.class;
}

从源码中我们能看出,数据的导入导出默认都是关闭的,我们只要在注解中显示的定义成true就可以了!
这是官网中最简单的示例了,更多好玩的功能,尽在https://www.erupt.xyz/#!/doc,如果想解锁更多有趣玩法可以加群:821389129。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐