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.eruptgroupId>
<artifactId>erupt-upmsartifactId>
<version>${erupt.version}version>
dependency>
<dependency>
<groupId>xyz.eruptgroupId>
<artifactId>erupt-securityartifactId>
<version>${erupt.version}version>
dependency>
<dependency>
<groupId>xyz.eruptgroupId>
<artifactId>erupt-webartifactId>
<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。