Spring Boot快速開發(fā)企業(yè)級(jí)Admin管理后臺(tái)
簡介 | Intro
Erupt 是一個(gè)低代碼 全棧類 框架,它使用 Java 注解 動(dòng)態(tài)生成頁面以及增、刪、改、查、權(quán)限控制等后臺(tái)功能。
零前端代碼、零 CURD、自動(dòng)建表,僅需 一個(gè)類文件 + 簡潔的注解配置,快速開發(fā)企業(yè)級(jí) Admin 管理后臺(tái)。
提供企業(yè)級(jí)中后臺(tái)管理系統(tǒng)的全棧解決方案,大幅壓縮研發(fā)周期,專注核心業(yè)務(wù)。
完美取代 代碼生成器,開發(fā)后臺(tái)管理系統(tǒng)更優(yōu)解!
特性 | Features
易于上手:會(huì)簡單的 Spring Boot 基礎(chǔ)知識(shí)即可
使用簡單:僅需了解 @Erupt 與 @EruptField 兩個(gè)注解即可上手開發(fā)
代碼簡潔:前端零代碼,后端 template、controller、service、dao 都不需要,僅需一個(gè)類文件即可
敏捷開發(fā):僅單個(gè)
.java文件即可實(shí)現(xiàn)后臺(tái)管理功能,專注業(yè)務(wù)與核心功能的研發(fā)快速迭代:需求變更僅需修改或添加注解配置即可,迭代速度比需求討論速度還快
功能強(qiáng)大:動(dòng)態(tài)條件處理,支持增刪改查等功能代理接口,Session存儲(chǔ)機(jī)制選擇,行為日志記錄等
自動(dòng)建表:依托于JPA可自動(dòng)幫你完成數(shù)據(jù)庫建表相關(guān)工作
低侵入性:幾乎所有功能都圍繞注解而展開,不影響Spring Boot其他功能或三方庫庫的使用
多數(shù)據(jù)源:支持:MySQL、Oracle、SQL Server、PostgreSQL、H2,甚至支持 MongoDB
大量組件:滑動(dòng)輸入、時(shí)間選擇、一對(duì)多、圖片上傳、代碼編輯器、自動(dòng)完成、樹、多對(duì)多、地圖等23類組件
豐富展示:普通文本、二維碼、鏈接、圖片、HTML、代碼段、iframe、swf等
代碼生成:erupt代碼已經(jīng)足夠簡潔,代碼生成器可進(jìn)一步提升開發(fā)效率
高擴(kuò)展性:支持自定義數(shù)據(jù)源實(shí)現(xiàn)、自定義頁面、動(dòng)態(tài)權(quán)限管理、生命周期函數(shù)、自定義OSS等
界面美觀:每個(gè)交互都精心設(shè)計(jì),產(chǎn)品思維打磨,只為了更好的操作體驗(yàn)
權(quán)限管理:用戶管理、角色管理、組織管理、菜單管理、登錄日志、操作日志等
高安全性:可靠的安全機(jī)制,登錄白名單,權(quán)限驗(yàn)證,注解項(xiàng)檢查,細(xì)顆粒度權(quán)限控制,為你的數(shù)據(jù)保駕護(hù)航
前后端分離:后端與前端可分開部署
響應(yīng)式布局:支持PC端手機(jī)端等各種規(guī)格的設(shè)備中使用
無需二次開發(fā):僅需引用 jar 包即可 !
支持?jǐn)U展頁面:可開發(fā)自定義頁面,自定義彈出層,且支持:原生H5 / Freemarker / Thymeleaf等方式渲染
? 演示截圖 | Screenshot







為什么要做 Erupt ?
無論開發(fā)怎樣的系統(tǒng),都需要配套的管理后臺(tái)做數(shù)據(jù)支撐,是軟件開發(fā)中必不可少的一環(huán),但實(shí)際開發(fā)中存這無法規(guī)避的痛點(diǎn),如:開發(fā)效率低下、接口對(duì)接繁瑣、界面差強(qiáng)人意、代碼重復(fù)、有安全漏洞,導(dǎo)致開發(fā)成本極高。
雖然近些年來 代碼生成器 成了后臺(tái)開發(fā)的新寵,但它真的是后臺(tái)開發(fā)的最優(yōu)解嗎?
代碼生成器的本質(zhì)還是生成繁瑣的前端與后臺(tái)代碼,一旦修改后期生成的代碼很難合并,想想 Mybatis-Generator,基本上就是一次性的東西,雖然減輕了部分工作,可解決方式并非最佳。
開發(fā)后臺(tái)管理系統(tǒng)大部分情況下只想做個(gè)普通的增刪改查界面,用于數(shù)據(jù)管理,類似下面這種:


@Erupt(
???????name?=?"簡單的例子",
???????power?=?@Power(importable?=?true,?export?=?true)
)
@Table(name?=?"t_simple")???//數(shù)據(jù)庫表名
@Entity
public?class?Simple?extends?BaseModel?{
????@EruptField(
????????????views?=?@View(title?=?"文本"),
????????????edit?=?@Edit(title?=?"文本",?notNull?=?true,?search?=?@Search)
????)
????private?String?input;
????@EruptField(
????????????views?=?@View(title?=?"數(shù)值",?sortable?=?true),
????????????edit?=?@Edit(title?=?"數(shù)值",?search?=?@Search)
????)
????private?Float?number;
????@EruptField(
????????????views?=?@View(title?=?"布爾"),
????????????edit?=?@Edit(title?=?"布爾")
????)
????private?Boolean?bool;
????@EruptField(
????????????views?=?@View(title?=?"時(shí)間"),
????????????edit?=?@Edit(title?=?"時(shí)間",?search?=?@Search(vague?=?true))
????)
????private?Date?date;
}
功能體驗(yàn)
這個(gè)界面雖然用 Vue + Ant Design + SSM 也能做出個(gè)大概,但仔細(xì)觀察會(huì)發(fā)現(xiàn)它有大量細(xì)節(jié)功能如:
有按鈕可以查詢、新增、批量刪除、excel 導(dǎo)入導(dǎo)出 可以對(duì)數(shù)據(jù)做篩選、隱藏某列、按某列排序 表格有分頁與匯總,可預(yù)覽單行數(shù)據(jù) 多種組件、有校驗(yàn)規(guī)則
全部實(shí)現(xiàn)這些僅前端就需要大量的代碼,后端的接口與業(yè)務(wù)邏輯更不在少數(shù)。
但可以看到,用 erupt 只需要 30幾行 代碼就能完成,
完全不需要了解 Angular / React / Vue / Jquery
而且不需要了解 JavaScript / HTML / CSS
甚至不需要了解 Spring MVC / Mybatis / SQL
即便沒學(xué)過 erupt 也能猜到大部分配置的作用,只需要簡單配置就能完成所有后臺(tái)頁面開發(fā)。
這正是建立 erupt 的初衷,對(duì)于大部分常用頁面,應(yīng)該使用最簡單的方法來實(shí)現(xiàn),甚至不需要學(xué)習(xí)各種框架和工具,專注核心業(yè)務(wù),告別 996,省下的時(shí)間做自己喜歡做的事,從此不再因?yàn)榉爆嵉暮笈_(tái)開發(fā)而焦頭爛額。
下載使用 | Download
下載最新的JAR或通過Maven獲取。
<dependency>
??<groupId>xyz.eruptgroupId>
??<artifactId>erupt-upmsartifactId>
??<version>LATEST-VERSIONversion>
dependency>
<dependency>
??<groupId>xyz.eruptgroupId>
??<artifactId>erupt-securityartifactId>
??<version>LATEST-VERSIONversion>
dependency>
<dependency>
??<groupId>xyz.eruptgroupId>
??<artifactId>erupt-webartifactId>
??<version>LATEST-VERSIONversion>
dependency>
詳細(xì)使用步驟
模塊說明 | Module
erupt
├──?erupt-annotation?--?核心注解聲明
├──?erupt-core?--?核心功能實(shí)現(xiàn)
├──?erupt-data?--?數(shù)據(jù)實(shí)現(xiàn)包
?????├──?erupt-jpa?--?關(guān)系型數(shù)據(jù)庫erupt實(shí)現(xiàn)
?????└──?erupt-mongodb?--?mongodb數(shù)據(jù)庫erupt實(shí)現(xiàn)
├──?erupt-job?--?定時(shí)任務(wù)功能,支持動(dòng)態(tài)定時(shí)任務(wù),郵件發(fā)送,任務(wù)日志等功能
├──?erupt-security?--?接口數(shù)據(jù)安全模塊
├──?erupt-upms?--?用戶權(quán)限管理
├──?erupt-tpl?--?支持在 erupt 中自定義頁面,自定義圖表,自定義彈出層,模板引擎支持:FreeMarker / Thymeleaf /?原生H5 / Velocity 等
├──?erupt-generator?--?代碼生成器,通過簡單配置,生成?erupt?代碼段
└──?erupt-web?--?前端頁面
erupt-pro
├──?erupt-workflow?--?基于erupt實(shí)現(xiàn)的工作流模塊(開發(fā)中)
├──?erupt-dataflow?--?基于erupt實(shí)現(xiàn)的數(shù)據(jù)流模塊(開發(fā)中)
└──?erupt-bi?--?通過 sql 加 js 混編實(shí)現(xiàn)動(dòng)態(tài)報(bào)表,支持:多數(shù)據(jù)源、自定義函數(shù)、圖表開發(fā)等(付費(fèi)模塊)
erupt-site?--?Erupt?官方網(wǎng)站?https://github.com/erupts/erupt-site
erupt-web-angular?--?Erupt?前端源碼,暫不開放,如有自定義頁面的需求,可使用?erupt-tpl?模塊
技術(shù)體系 | 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 ...
使用文檔:
https://www.yuque.com/yuepeng/erupt
項(xiàng)目地址:
gitee:???https://gitee.com/erupt/erupt-example
github:?https://github.com/erupts/erupt-example


