今天给大家带来一款开源的 Java 后台管理框架——Erupt Framework

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

项目地址:https://gitee.com/erupt/erupt

img

简单新建一个实体类,加点注解,就ok了,不信?跟着本文,跟着我探索 erupt 的奥秘。

一、快速开始

1.1 环境准备

后端环境:

  1. JDK 1.8+
  2. Maven 3.0+
  3. MYSQL 5.5+

开发工具

  1. IDE:IDEA
  2. MySQL 可视化:Navicat

1.2 快速开始

(1)clone 项目

  • GitHub:
git clone https://github.com/erupts/erupt-example.git
  • Gitee(国内访问网速较快):
git clone https://gitee.com/erupt/erupt-example.git

(2)创建 MySQL 数据库

打开 Navicat,连接 MySQL,新建数据库 erupt,设置字符集和排序规则如下图所示:

(3)运行后端项目

配置文件:使用 IDEA 打开后端项目 erupt-example,等待 maven 下载结束后,打开配置文件 yml 配置数据库,改成你机器上的 MySQL。

# application.properties写法
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/erupt?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.database=mysql
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

项目启动的时候,会自动导入数据表到MySQL。

image-20210108070144661

1.3 效果预览

运行成功访问 http://localhost:8080

image-20210108070308399

账号:erupt

密码:erupt

二、快速创建一个管理页面

2.1 创建一个Java 实体类

创建一个Java类,代码如下

package xyz.demo.erupt.example.model;

import org.hibernate.annotations.GenericGenerator;
import xyz.erupt.annotation.Erupt;
import xyz.erupt.annotation.EruptField;
import xyz.erupt.annotation.sub_field.Edit;
import xyz.erupt.annotation.sub_field.View;

import javax.persistence.*;


/*
 *	@Erupt注解修饰在类上,@EruptField注解修饰在字段上
 *	其他注解均为Jpa注解
 */
@Erupt(name = "简单的例子")
@Table(name = "demo_simple")
@Entity
public class Simple {

    //主键
    @Id
    @GeneratedValue(generator = "generator")
    @GenericGenerator(name = "generator", strategy = "native")
    @Column(name = "ID")
    @EruptField
    private Long id;

    //文本输入
    @EruptField(
            views = @View(title = "文本"),
            edit = @Edit(title = "文本")
    )
    private String input;
    
    //数值输入
    @EruptField(
            views = @View(title = "数值"),
            edit = @Edit(title = "数值")
    )
    private Integer number;

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

    //时间选择
    @EruptField(
            views = @View(title = "时间"),
            edit = @Edit(title = "时间")
    )
    private Date date;

}

2.2 启动项目,添加菜单运行效果演示

image-20210108071255035

Erupt支持的组件多达23类,可根据实际需求灵活的配置管理后台!

三、核心注解 → @Erupt

3.1 使用方法

@Erupt(
       name = "Erupt",              //功能名称
       desc = "Erupt Framework",	//描述
       loginVerify = true,			//是否开启权限验证
       orderBy = "id desc", 		//排序表达式
)
public class EruptTest extends BaseModel {
    
}

3.2 注解配置项说明

属性名 描述
primaryKeyCol 主键列名称,默认值为id
name 功能名称
desc 功能描述
authVerify 访问是否需要授权校验
orderBy 排序规则,参照HQL语句 order by 语法
power 控制增删改查导入导出功能
filter 数据展示过滤条件,参照HQL语句where语法
tree 树节点配置
linkTree 左树右表配置
drills 自定义下钻关联视图
rowOperation 自定义功能按钮
dataProxy 代理回调接口方法集
param 自定义参数

四、核心注解 → @EruptField

4.1 注解示例

@EruptField(
    sort = 10,
    views = @View(title = "名称"),
    edit = @Edit(title = "名称")
)
private String name;

4.2 注解配置项说明

注解 描述
views 表格展示配置
edit 编辑项配置
sort 前端展示顺序,默认按照字段排列顺序进行排序,数字越小越靠前
params 自定义参数

4.3 @View

属性名 描述
title 表格列名称
desc 表格列描述
column 如果修饰字段为对象类型,需要使用此属性指定,要展示哪一个字段在@ManyToOne时使用此配置
type 数据展示形式,详见 type参照
show 是否显示
sortable 是否支持排序前端通过表格列进行排序操作
export 是否支持Excel导出
className 表格样式类名
template 字符串转换模板 该参数在前端使用eval方法解析支持变量:1、item(整行数据)2、item.xxx(数据中的某一列)3、value (当前数据)配置为 → template = “‘姓名:’ + value”展示效果 → 姓名xxxx

@View → type参照

属性名 描述
AUTO 根据@Edit → EditType或字段类型自动识别EditType.ATTACHMENT → ATTACHMENTEditType.ATTACHMENT.IMAGE → IMAGEEditType.HTML_EDITOR HTMLEditType.CODE_EDITOR CODEEditType.MAP MAP Boolean BOOLEANDate → DATEInteger NUMBERFloat NUMBERDouble NUMBER其他 TEXT
TEXT 普通文本
IMAGE 图片
IMAGE_BASE64 base64格式图片
SWF flash动画
HTML 渲染HTML代码段
MOBILE_HTML 手机屏幕尺寸渲染HTML代码段
QR_CODE 二维码
LINK 新窗口方式打开链接
LINK_DIALOG 对话框方式打开链接
DOWNLOAD 直接下载
ATTACHMENT 新窗口方式代开附件
ATTACHMENT_DIALOG 对话框方式打开附件
DATE 日期
BOOLEAN 布尔
NUMBER 数值
MAP 地图
CODE 代码

4.4 @Edit

属性名 描述
title 编辑框名称
desc 描述
notNull 是否为必填项
show 是否显示
showBy 组件在何种情况下显示,具体使用方法如下:showBy = @ShowBy(dependField = “number”, expr = “value == 1”)****dependField:展示此组件需要依赖的组件expr:表达式返回true则本组件显示表达式说明:value表示依赖字段number的值,语法为JavaScript,如果number的输入值为1则显示本组件。
placeHolder 描述输入字段预期值的提示信息
search 是否支持搜索
orderBy 排序规则,参照hql语句 order by 语法当字段类型为@Erupt修饰的对象时可用
filter 排序规则,参照hql语句where语法当字段类型为@Erupt修饰的对象时可用
type 编辑类型,详见 type参照

@Edit → type参照

类型 描述
AUTO 默认为此类型,可通过字段类型等特征进行推断
INPUT 文本输入框
NUMBER 数值输入框
SLIDER 滑动输入条
DATE 时间选择器
BOOLEAN 开关
CHOICE 单选框
TAGS 标签选择器
AUTO_COMPLETE 自动完成
TEXTAREA 多行文本输入框
HTML_EDITOR 富文本编辑器
CODE_EDITOR 代码编辑器
ATTACHMENT 附件,图片
MAP 地图
DIVIDE 分割线
TPL 自定义HTML模板
COMBINE 表单联合
HIDDEN 隐藏
EMPTY 空(仍占据组件位置)
版权声明:本文为fl825原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/fl825/p/14261513.html