Erupt框架入门案例(一)

什么是 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.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,需要自己手动锁定版本号!准备工作完成之后,启动主启动类!Erupt框架入门案例(一)_第1张图片
这个框架使用的持久层是JPA,所以他会自动的建表(建库还是要自己来的),最新版的示例代码更完善,只要把官网的实例跑一下看一下,应付一般的需求还是OK的!

自定义菜单

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

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

Erupt框架入门案例(一)_第2张图片
Erupt框架入门案例(一)_第3张图片
创建完成之后,点击上面的保存!然后刷新浏览器看下效果!
Erupt框架入门案例(一)_第4张图片
新增:Erupt框架入门案例(一)_第5张图片
修改:Erupt框架入门案例(一)_第6张图片
对比若依、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。

你可能感兴趣的:(SpringBoot,erupt,java,spring,boot)