簡介 | Intro
Erupt 是一個低代碼 全棧類 框架,它使用 Java 註解 動態生成頁面以及增、刪、改、查、權限控制等後臺功能。前端
零前端代碼、零 CURD、自動建表,僅需 一個類文件 + 簡潔的註解配置,快速開發企業級 Admin 管理後臺。java
提供企業級中後臺管理系統的全棧解決方案,大幅壓縮研發週期,專一核心業務。git
完美取代 代碼生成器,開發後臺管理系統更優解!github
特性 | Features
-
易於上手:會簡單的 Spring Boot 基礎知識便可web
-
使用簡單:僅需瞭解 @Erupt 與 @EruptField 兩個註解便可上手開發sql
-
代碼簡潔:前端零代碼,後端 template、controller、service、dao 都不須要,僅需一個類文件便可mongodb
-
敏捷開發:僅單個
.java
文件便可實現後臺管理功能,專一業務與核心功能的研發數據庫 -
快速迭代:需求變動僅需修改或添加註解配置便可,迭代速度比需求討論速度還快後端
-
功能強大:動態條件處理,支持增刪改查等功能代理接口,Session存儲機制選擇,行爲日誌記錄等安全
-
自動建表:依託於JPA可自動幫你完成數據庫建表相關工做
-
低侵入性:幾乎全部功能都圍繞註解而展開,不影響Spring Boot其餘功能或三方庫庫的使用
-
多數據源:支持:MySQL、Oracle、SQL Server、PostgreSQL、H2,甚至支持 MongoDB
-
大量組件:滑動輸入、時間選擇、一對多、圖片上傳、代碼編輯器、自動完成、樹、多對多、地圖等23類組件
-
豐富展現:普通文本、二維碼、連接、圖片、HTML、代碼段、iframe、swf等
-
代碼生成:erupt代碼已經足夠簡潔,代碼生成器可進一步提高開發效率
-
高擴展性:支持自定義數據源實現、自定義頁面、動態權限管理、生命週期函數、自定義OSS等
-
界面美觀:每一個交互都精心設計,產品思惟打磨,只爲了更好的操做體驗
-
權限管理:用戶管理、角色管理、組織管理、菜單管理、登陸日誌、操做日誌等
-
高安全性:可靠的安全機制,登陸白名單,權限驗證,註解項檢查,細顆粒度權限控制,爲你的數據保駕護航
-
先後端分離:後端與前端可分開部署
-
響應式佈局:支持PC端手機端等各類規格的設備中使用
-
無需二次開發:僅需引用 jar 包便可 !
-
支持擴展頁面:可開發自定義頁面,自定義彈出層,且支持:原生H5 / Freemarker / Thymeleaf等方式渲染
⛰ 演示截圖 | Screenshot
爲何要作 Erupt ?
不管開發怎樣的系統,都須要配套的管理後臺作數據支撐,是軟件開發中必不可少的一環,但實際開發中存這沒法規避的痛點,如:開發效率低下、接口對接繁瑣、界面差強人意、代碼重複、有安全漏洞,致使開發成本極高。
雖然近些年來 代碼生成器 成了後臺開發的新寵,但它真的是後臺開發的最優解嗎?
代碼生成器的本質仍是生成繁瑣的前端與後臺代碼,一旦修改後期生成的代碼很難合併,想一想 Mybatis-Generator,基本上就是一次性的東西,雖然減輕了部分工做,可解決方式並不是最佳。
開發後臺管理系統大部分狀況下只想作個普通的增刪改查界面,用於數據管理,相似下面這種:
@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;
}
功能體驗
這個界面雖然用 Vue + Ant Design + SSM 也能作出個大概,但仔細觀察會發現它有大量細節功能如:
-
有按鈕能夠查詢、新增、批量刪除、excel 導入導出 -
能夠對數據作篩選、隱藏某列、按某列排序 -
表格有分頁與彙總,可預覽單行數據 -
多種組件、有校驗規則
所有實現這些僅前端就須要大量的代碼,後端的接口與業務邏輯更不在少數。
但能夠看到,用 erupt 只須要 30幾行 代碼就能完成,
徹底不須要了解 Angular / React / Vue / Jquery
並且不須要了解 JavaScript / HTML / CSS
甚至不須要了解 Spring MVC / Mybatis / SQL
即使沒學過 erupt 也能猜到大部分配置的做用,只須要簡單配置就能完成全部後臺頁面開發。
這正是創建 erupt 的初衷,對於大部分經常使用頁面,應該使用最簡單的方法來實現,甚至不須要學習各類框架和工具,專一核心業務,告別 996,省下的時間作本身喜歡作的事,今後再也不由於繁瑣的後臺開發而焦頭爛額。
下載使用 | Download
下載最新的JAR或經過Maven獲取。
<!--用戶權限管理-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-upms</artifactId>
<version>LATEST-VERSION</version>
</dependency>
<!--接口數據安全-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-security</artifactId>
<version>LATEST-VERSION</version>
</dependency>
<!--後臺WEB界面-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-web</artifactId>
<version>LATEST-VERSION</version>
</dependency>
詳細使用步驟
模塊說明 | Module
erupt
├── erupt-annotation -- 核心註解聲明
├── erupt-core -- 核心功能實現
├── erupt-data -- 數據實現包
├── erupt-jpa -- 關係型數據庫erupt實現
└── erupt-mongodb -- mongodb數據庫erupt實現
├── erupt-job -- 定時任務功能,支持動態定時任務,郵件發送,任務日誌等功能
├── erupt-security -- 接口數據安全模塊
├── erupt-upms -- 用戶權限管理
├── erupt-tpl -- 支持在 erupt 中自定義頁面,自定義圖表,自定義彈出層,模板引擎支持:FreeMarker / Thymeleaf / 原生H5 / Velocity 等
├── erupt-generator -- 代碼生成器,經過簡單配置,生成 erupt 代碼段
└── erupt-web -- 前端頁面
erupt-pro
├── erupt-workflow -- 基於erupt實現的工做流模塊(開發中)
├── erupt-dataflow -- 基於erupt實現的數據流模塊(開發中)
└── erupt-bi -- 經過 sql 加 js 混編實現動態報表,支持:多數據源、自定義函數、圖表開發等(付費模塊)
erupt-site -- Erupt 官方網站 https://github.com/erupts/erupt-site
erupt-web-angular -- Erupt 前端源碼,暫不開放,若有自定義頁面的需求,可以使用 erupt-tpl 模塊
技術體系 | Technology system
後端:Java 八、 ScriptEngine、 Annotation、 JDBC、 Reflect、 Spring Boot、 JPA、 Hibernate、 Quartz、 Gson、 Lombok、 POI ...
前端:JavaScript、 H五、 MVVM、 Router、 Angular CLI、 Angular、 NG-ZORRO、 NG-ALAIN、 G2Plot、 RxJS、 TypeScript、 Less ...
源代碼下載地址:回覆"開源006"獲取
回覆「開源006」領取
推薦閱讀:
不是你須要中臺,而是一名合格的架構師(附各大廠中臺建設PPT)
【中臺實踐】滴滴大數據研發中臺的最佳實踐.pdf(附下載連接)
本文分享自微信公衆號 - 肉眼品世界(find_world_fine)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。