# 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)
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,基本上就是一次性的东西,虽然减轻了部分工作,可解决方式并非最佳。 开发后台管理系统大部分情况下只想做个普通的增删改查界面,用于数据管理,类似下面这种:   ``` 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![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() Edge / IE |
![]() Firefox |
![]() Chrome |
![]() Safari |
![]() Opera |
![]() Electron |
---|---|---|---|---|---|
Edge 16 / IE 11+ | 522 | 57 | 11 | 44 | Chromium 57 |
Github 仓库 | 码云仓库 | 🦅 官方网站 | 在线体验 | 📕 使用文档
---作者 :YuePeng / erupts@126.com