# erupt **Repository Path**: dingjunjun_codeSpace/erupt ## Basic Information - **Project Name**: erupt - **Description**: 🚀 使用 Java 注解,快速开发 Admin 管理后台。零前端代码、零 CURD、不生成任何代码、自动建表、注解式API,支持所有主流数据库,支持自定义页面,支持多数据源,提供二十几类业务组件,十几种展示形式,支持逻辑删除,动态定时任务,前端后端分离等。 核心技术:Spring Boot、JPA、Reflect、TypeScript、NG-ZORRO等。 开源不易,记得右上角点个star鼓励作者 ⭐️ ~ - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.erupt.xyz - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1397 - **Created**: 2022-09-29 - **Last Updated**: 2022-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 中文   |   [English](./README-EN.md)

logo

Erupt Framework   🚀   通用后台管理框架

零前端代码,几行 Java 注解,搞定后台管理系统

https://www.erupt.xyz

---

Erupt Framework maven-central jdk 8+ license Apache 2.0 Gitee star Gitee fork GitHub stars GitHub forks

Github 仓库   |   码云仓库   |   🦅 官方网站   |   在线体验   |   📕 使用文档

重要通知:前端源码将在 github star 达到 550 开源

QQ交流群:821389129 🔥

--- ## 🚀 简介 | Intro Erupt 是一个低代码 **全栈类** 框架,它使用 **Java 注解** 动态生成页面以及增、删、改、查、权限控制等后台功能。 零前端代码、零 CURD、自动建表,仅需 **一个类文件** + 简洁的注解配置,快速开发企业级 Admin 管理后台。 提供企业级中后台管理系统的全栈解决方案,大幅压缩研发周期,专注核心业务。 > 完美取代 **代码生成器**,开发后台管理系统更优解! ## 🌈 特性 | Features + **自动建表**:表结构自动生成,无需手动建表 + **易于上手**:会简单的 **Spring Boot** 基础知识即可 + **使用简单**:仅需了解 **@Erupt** 与 **@EruptField** 两个注解即可上手开发 + **代码简洁**:仅需一个 `.java` 文件, template、controller、service、dao 都不需要创建 + **功能强大**:动态条件处理,逻辑删除,LDAP,自定义登录逻辑,RedisSession,操作日志等 + **多数据源**:支持:MySQL、Oracle、SQL Server、**PostgreSQL**、H2,甚至支持 **MongoDB** + **高扩展性**:支持自定义数据源实现、自定义登录逻辑、动态权限管理、生命周期函数、**自定义 OSS** + **大量组件**:滑动输入、时间选择、**一对多**、图片上传、代码编辑器、自动完成、树、**多对多**、地图等23类组件 + **丰富展示**:普通文本、**二维码**、链接、图片、HTML、代码段、iframe、swf等 --- + **低侵入性**:几乎所有功能都围绕注解而展开,不影响Spring Boot其他功能或三方库库的使用 + **前后端分离**:后端与前端可分开部署 + **响应式布局**:支持PC端手机端等各种规格的设备中使用 + **自定义页面**:支持自定义页面,自定义弹出层,且支持:原生H5 / Freemarker / Thymeleaf等方式渲染 + **前端零代码**:前端布局自动构建,一行前端代码都不用写 + **无需二次开发**:仅需引用 jar 包即可 ! ## 🧐 为什么要做 Erupt ? 虽然近些年来 **代码生成器** 成了后台开发的新宠,但它真的是后台开发的最优解吗? 代码生成器的本质还是生成繁琐的前端与后台代码,一旦修改后期生成的代码很难合并,想想 Mybatis-Generator,基本上就是一次性的东西,虽然减轻了部分工作,可解决方式并非最佳。 开发后台管理系统大部分情况下只想做个普通的增删改查界面,用于数据管理,类似下面这种: ![result](readme/view.png) ![result](readme/edit.png) ``` java @Erupt( name = "简单的例子", power = @Power(importable = true, export = true) ) @Table(name = "t_simple") //数据库表名 @Entity 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; } ``` [功能体验](https://www.erupt.xyz/#!/contrast) 这个界面虽然用 Vue + Ant Design + SSM 也能做出个大概,但仔细观察会发现它有大量细节功能如: + 有按钮可以查询、新增、批量删除、excel 导入导出 + 可以对数据做筛选、隐藏某列、按某列排序 + 表格有分页与汇总,可预览单行数据 + 多种组件、有校验规则 全部实现这些仅前端就需要大量的代码,后端的接口与业务逻辑更不在少数。 但可以看到,用 erupt 只需要 **30几行** 代码就能完成 ! > 完全不需要了解 **Angular / React / Vue / Jquery** > > 而且不需要了解 **JavaScript / HTML / CSS** > > 甚至不需要了解 **Spring MVC / Mybatis / SQL** 即便没学过 erupt 也能猜到大部分配置的作用,只需要简单配置就能完成所有后台页面开发。 这正是建立 erupt 的初衷,对于大部分常用页面,应该使用最简单的方法来实现,甚至不需要学习各种框架和工具,专注核心业务。 ## ⛰ 演示截图 | Screenshot
## 🔗 下载使用 | Download 下载最新的JAR或通过Maven获取。 ```xml xyz.erupt erupt-upms LATEST-VERSION xyz.erupt erupt-security LATEST-VERSION xyz.erupt erupt-web LATEST-VERSION ``` [详细使用步骤](https://www.yuque.com/yuepeng/erupt/tpq1l9) ## 🥏 模块说明 | Module ```lua erupt ├── erupt-annotation -- 核心注解声明 ├── erupt-core -- 核心功能实现 ├── erupt-data -- 数据实现包 ├── erupt-jpa -- 关系型数据库erupt实现 └── erupt-mongodb -- mongodb数据库erupt实现 ├── erupt-job -- 定时任务功能,支持动态定时任务,邮件发送,任务日志等功能 ├── erupt-upms -- 用户权限管理 ├── erupt-security -- 接口数据安全模块 ├── erupt-web -- 前端页面 ├── erupt-tpl -- 支持在 erupt 中自定义页面,自定义图表,自定义弹出层,模板引擎支持:FreeMarker / Thymeleaf / 原生H5 / Velocity 等 ├── erupt-tpl-ui -- 在 erupt-tpl 中可使用的 UI 库 ├── ant-design ├── element-ui └── amis ├── erupt-generator -- 代码生成器,通过配置,生成 erupt 代码段 └── erupt-monitor -- 基于erupt实现的服务器监控模块 erupt-pro ├── erupt-dataflow -- 基于erupt实现的数据流模块(构思中) ├── erupt-workflow -- 基于erupt实现的工作流模块(构思中) ├── erupt-tenant -- 基于erupt实现的SaaS云多租户模块(开发中,面向企业用户) └── erupt-bi -- 通过 sql 加 js 混编实现动态报表,支持:多数据源、自定义函数、图表开发等 erupt-site -- Erupt 官方网站 https://github.com/erupts/erupt-site erupt-web-angular -- Erupt 前端源码,github star 达到550开源,如有自定义页面的需求,可使用 erupt-tpl 模块,需要此模块源码请联系作者 ``` ## 📟 技术体系 | Technology system **后端:** Java 8、 ScriptEngine、 Annotation、 JDBC、 Reflect、 Spring Boot、 JPA、 Hibernate、 Quartz、 Gson、 Lombok、 POI ... **前端:** JavaScript、 H5、 MVVM、 Router、 Angular CLI、 Angular、 NG-ZORRO、 NG-ALAIN、 G2Plot、 RxJS、 TypeScript、 Less ... ## ⚙️ 架构图 | Framework ![架构图](readme/architecture.png) ## 🌕 在线体验 | Demo 演示地址:https://www.erupt.xyz/demo 账号密码:`guest / guest` **支持主流 4 款现代浏览器,以及 Internet Explorer 11+,可直接运行在 Electron 等基于 Web 标准的环境上**
IE / Edge
Edge / IE
Firefox
Firefox
Chrome
Chrome
Safari
Safari
Opera
Opera
Electron
Electron
Edge 16 / IE 11+ 522 57 11 44 Chromium 57
## 🍁 代码样例 | Example Code gitee:   https://gitee.com/erupt/erupt-example github: https://github.com/erupts/erupt-example ## 🔭 开源推荐 | Recommend [`zeta-api`:通过XML配置快速创建api接口与文档,安全且高效,快速开发必备!](https://github.com/erupts/zeta-api) ## ⛽️ 捐赠 | Donate 此框架服务器,域名,空间,人工等费用一直由作者本人自掏腰包并持续维护,开源不易,一杯咖啡也是爱 🙏 [前往捐赠](https://www.yuque.com/erupts/erupt/mwf15h) ## 🧩 公众号 欢迎关注 Erupt 官方公众号,关注后可获取最新群二维码 ![qr.jpg](./readme/qr.jpg) ## ⭐️ Erupt 使用 Apache License 2.0 协议,源代码完全开源,无商业限制。 开源不易如果喜欢请给作者 Star 鼓励 👇 ## [Github](https://github.com/erupts/erupt)   /   [Gitee](https://gitee.com/erupt/erupt) ---

Github 仓库   |   码云仓库   |   🦅 官方网站   |   在线体验   |   📕 使用文档

---

作者 :YuePeng / erupts@126.com