GitHub項(xiàng)目:快速開(kāi)發(fā)企業(yè)級(jí)Admin管理后臺(tái)
簡(jiǎn)介 | Intro
Erupt 是一個(gè)低代碼 全棧類 框架,它使用 Java 注解 動(dòng)態(tài)生成頁(yè)面以及增、刪、改、查、權(quán)限控制等后臺(tái)功能。
零前端代碼、零 CURD、自動(dòng)建表,僅需 一個(gè)類文件 + 簡(jiǎn)潔的注解配置,快速開(kāi)發(fā)企業(yè)級(jí) Admin 管理后臺(tái)。
提供企業(yè)級(jí)中后臺(tái)管理系統(tǒng)的全棧解決方案,大幅壓縮研發(fā)周期,專注核心業(yè)務(wù)。
完美取代 代碼生成器,開(kāi)發(fā)后臺(tái)管理系統(tǒng)更優(yōu)解!
特性 | Features
易于上手:會(huì)簡(jiǎn)單的 Spring Boot 基礎(chǔ)知識(shí)即可
使用簡(jiǎn)單:僅需了解 @Erupt 與 @EruptField 兩個(gè)注解即可上手開(kāi)發(fā)
代碼簡(jiǎn)潔:前端零代碼,后端 template、controller、service、dao 都不需要,僅需一個(gè)類文件即可
敏捷開(kāi)發(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ù)庫(kù)建表相關(guān)工作
低侵入性:幾乎所有功能都圍繞注解而展開(kāi),不影響Spring Boot其他功能或三方庫(kù)庫(kù)的使用
多數(shù)據(jù)源:支持:MySQL、Oracle、SQL Server、PostgreSQL、H2,甚至支持 MongoDB
大量組件:滑動(dòng)輸入、時(shí)間選擇、一對(duì)多、圖片上傳、代碼編輯器、自動(dòng)完成、樹(shù)、多對(duì)多、地圖等23類組件
豐富展示:普通文本、二維碼、鏈接、圖片、HTML、代碼段、iframe、swf等
代碼生成:erupt代碼已經(jīng)足夠簡(jiǎn)潔,代碼生成器可進(jìn)一步提升開(kāi)發(fā)效率
高擴(kuò)展性:支持自定義數(shù)據(jù)源實(shí)現(xiàn)、自定義頁(yè)面、動(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ù)航
前后端分離:后端與前端可分開(kāi)部署
響應(yīng)式布局:支持PC端手機(jī)端等各種規(guī)格的設(shè)備中使用
無(wú)需二次開(kāi)發(fā):僅需引用 jar 包即可 !
支持?jǐn)U展頁(yè)面:可開(kāi)發(fā)自定義頁(yè)面,自定義彈出層,且支持:原生H5 / Freemarker / Thymeleaf等方式渲染
? 演示截圖 | Screenshot







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


@Erupt(
???????name?=?"簡(jiǎn)單的例子",
???????power?=?@Power(importable?=?true,?export?=?true)
)
@Table(name?=?"t_simple")???//數(shù)據(jù)庫(kù)表名
@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è)與匯總,可預(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
即便沒(méi)學(xué)過(guò) erupt 也能猜到大部分配置的作用,只需要簡(jiǎn)單配置就能完成所有后臺(tái)頁(yè)面開(kāi)發(fā)。
這正是建立 erupt 的初衷,對(duì)于大部分常用頁(yè)面,應(yīng)該使用最簡(jiǎn)單的方法來(lái)實(shí)現(xiàn),甚至不需要學(xué)習(xí)各種框架和工具,專注核心業(yè)務(wù),告別 996,省下的時(shí)間做自己喜歡做的事,從此不再因?yàn)榉爆嵉暮笈_(tái)開(kāi)發(fā)而焦頭爛額。
下載使用 | Download
下載最新的JAR或通過(guò)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ì)使用步驟
模塊說(shuō)明 | Module
erupt
├──?erupt-annotation?--?核心注解聲明
├──?erupt-core?--?核心功能實(shí)現(xiàn)
├──?erupt-data?--?數(shù)據(jù)實(shí)現(xiàn)包
?????├──?erupt-jpa?--?關(guān)系型數(shù)據(jù)庫(kù)erupt實(shí)現(xiàn)
?????└──?erupt-mongodb?--?mongodb數(shù)據(jù)庫(kù)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 中自定義頁(yè)面,自定義圖表,自定義彈出層,模板引擎支持:FreeMarker / Thymeleaf /?原生H5 / Velocity 等
├──?erupt-generator?--?代碼生成器,通過(guò)簡(jiǎn)單配置,生成?erupt?代碼段
└──?erupt-web?--?前端頁(yè)面
erupt-pro
├──?erupt-workflow?--?基于erupt實(shí)現(xiàn)的工作流模塊(開(kāi)發(fā)中)
├──?erupt-dataflow?--?基于erupt實(shí)現(xiàn)的數(shù)據(jù)流模塊(開(kāi)發(fā)中)
└──?erupt-bi?--?通過(guò) sql 加 js 混編實(shí)現(xiàn)動(dòng)態(tài)報(bào)表,支持:多數(shù)據(jù)源、自定義函數(shù)、圖表開(kāi)發(fā)等(付費(fèi)模塊)
erupt-site?--?Erupt?官方網(wǎng)站?https://github.com/erupts/erupt-site
erupt-web-angular?--?Erupt?前端源碼,暫不開(kāi)放,如有自定義頁(yè)面的需求,可使用?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
如果你也有好的開(kāi)源項(xiàng)目,歡迎推薦!
微信號(hào)聯(lián)系:westbrook12000(ps:加好友請(qǐng)備注“開(kāi)源”)


600W個(gè)微信紅包封面,人人都能領(lǐng)取到!!!

開(kāi)源推薦:高仿斗魚(yú) APP
