中文 | English
Github 倉庫 | 碼雲倉庫 | ? 官方網站| 線上體驗 | 框架生態 |使用文檔
Erupt Cloud【分散式雲端配置】 | Erupt BI 【資料分析】 | Erupt Tenant 【多租戶】
QQ交流群:836044286
Erupt 是一個低程式碼全端類別框架,它使用Java 註解動態產生頁面以及增、刪、變更、查、權限控制等後台功能。
零前端程式碼、零CURD、自動建表,只需一個類別文件+ 簡潔的註解配置,快速開發企業級Admin 管理後台。
高擴展性,支援CURD自由擴展@DataProxy 、自訂資料來源、邏輯刪除、LDAP、OSS。
提供企業級中後台管理系統的全端解決方案,大幅壓縮研發週期,專注核心業務。
完美取代程式碼產生器,開發後台管理系統更優解決方案
從2020 年開始不斷優化升級,目前已有數百家小型公司使用,數千名開發者開發相關應用程式。上百名開發者參與提交了功能建議,30多位貢獻者參與提交程式碼。
自動建表:表結構自動生成,無需手動建表
易於上手:會簡單的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 套件即可!
Github | 碼雲 | |
---|---|---|
後端源碼 | https://github.com/erupts/erupt | https://gitee.com/erupt/erupt |
前端原始碼 | https://github.com/erupts/erupt-web | https://gitee.com/erupt/erupt-web |
範例程式碼 | https://github.com/erupts/erupt-example | https://gitee.com/erupt/erupt-example |
雖然近年來程式碼產生器成了後台開發的新寵,但它真的是後台開發的最佳解嗎?
程式碼產生器的本質還是產生繁瑣的前端與後台程式碼,一旦修改後期產生的程式碼很難合併,想想Mybatis-Generator,基本上就是一次性的東西,雖然減輕了部分工作,可解決方式並非最佳。
開發後台管理系統大部分情況下只想做個普通的增刪改查介面,用於資料管理,類似下面這種:
PS: erupt支援定義複雜的頁面自訂,詳見erupt-tpl 模組
@ 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 = "布尔" , search = @ Search )
)
private Boolean bool ;
@ EruptField (
views = @ View ( title = "时间" ),
edit = @ Edit ( title = "时间" , search = @ Search ( vague = true ))
)
private Date date ;
@ EruptField (
views = @ View ( title = "滑动条" ),
edit = @ Edit ( title = "滑动条" , type = EditType . SLIDER , search = @ Search ,
sliderType = @ SliderType ( max = 90 , markPoints = { 0 , 30 , 60 , 90 }, dots = true ))
)
private Integer slide ;
@ EruptField (
views = @ View ( title = "下拉选择" ),
edit = @ Edit (
search = @ Search ,
title = "下拉选择" , type = EditType . CHOICE ,
choiceType = @ ChoiceType ( fetchHandler = SqlChoiceFetchHandler . class ,
fetchHandlerParams = "select id,name from e_upms_menu"
)
)
)
private Long choice ;
}
功能體驗
這個介面雖然用Vue + Ant Design + SSM 也能做出個大概,但仔細觀察會發現它有大量細節功能如:
全部實作這些僅前端就需要大量的程式碼,後端的介面與業務邏輯更不在少數。
但可以看到,用erupt 只需要30幾行程式碼就能完成!
完全不需要了解Angular / React / Vue / Jquery
而且不需要了解JavaScript / HTML / CSS
甚至不需要了解Spring MVC / Mybatis / SQL
即便沒學過erupt 也能猜到大部分配置的作用,只需要簡單設定就能完成所有後台頁面開發。
這正是建立erupt 的初衷,對於大部分常用頁面,應該使用最簡單的方法來實現,甚至不需要學習各種框架和工具,專注於核心業務。
傳統Spring Web 開發 | 程式碼產生器 | Axelor | Erupt | |
領域模型 | Java 程式碼 | Java 程式碼 | XML 定義 | Annotation 註解定義 |
DTO | Java 程式碼 | 程式碼生成 | 不需要 | 不需要 |
ORM 映射 | XML 或Java 程式碼 | 程式碼生成 | 程式碼生成 | 註解定義 |
資料存取 | 介面+ 實現 | 程式碼生成 | 程式碼生成 | 內建+ 按需實現 |
業務邏輯 | 介面+ 實現 | 程式碼生成+ 邏輯調整 | 內建+ 按需實現 | 內建+ 按需@DataProxy 實現 |
展現層MVC | Java 程式碼+ 視圖模板 | 程式碼生成+ 邏輯調整 | 不需要 | 不需要 |
前端 | 比Java 程式碼還多 | 程式碼生成+ 邏輯調整 | 常規應用程式無需開發 | 常規應用程式無需開發 |
行動端展示效果 | |||
下載最新的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 >
詳細使用步驟
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 -- Erupt 前端源码 https://github.com/erupts/erupt-web
後端: Java 8、 Spring Boot、 ScriptEngine、SpEL、 Annotation、 JDBC、 Reflect、 JPA、 Hibernate、 Quartz、 Gson、 Lombok、 POI ...
前端: JavaScript、 H5、 MVVM、 Router、 Angular CLI、 Angular、 NG-ZORRO、 NG-ALAIN、 G2Plot、 RxJS、 TypeScript、 Less ...
演示網址:https://www.erupt.xyz/demo
帳號密碼: guest / guest
支援主流4 款現代瀏覽器,以及Internet Explorer 11+,可直接運行在Electron 等基於Web 標準的環境上
Edge / IE | Firefox | Chrome | Safari | Opera | Electron |
---|---|---|---|---|---|
Edge 16 / IE 11+ | 522 | 57 | 11 | 44 | Chromium 57 |
zeta-api
:透過XML配置快速建立api介面與文檔,安全且高效,快速開發必備!
Jpom
:簡而輕的低侵入式線上建置、自動部署、日常維運、專案監控軟體
QQ交流群:836044286
微信交流群:由於微信群二維碼有效時間僅7日,請關注Erupt 官方公眾號(EruptGuide),可取得最新群組二維碼
此框架伺服器,域名,空間,人工等費用一直由作者本人自掏腰包並持續維護,開源不易,一杯咖啡也是愛
前往捐贈
Github 倉庫 | 碼雲倉庫 | ? 官方網站| 線上體驗 | 使用文檔
作者:YuePeng / [email protected]