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






為什么要做 Erupt ?
無論開發(fā)怎樣的系統(tǒng),都需要配套的管理后臺做數(shù)據(jù)支撐,是軟件開發(fā)中必不可少的一環(huán),但實際開發(fā)中存這無法規(guī)避的痛點,如:開發(fā)效率低下、接口對接繁瑣、界面差強人意、代碼重復、有安全漏洞,導致開發(fā)成本極高。
雖然近些年來 代碼生成器 成了后臺開發(fā)的新寵,但它真的是后臺開發(fā)的最優(yōu)解嗎?
代碼生成器的本質(zhì)還是生成繁瑣的前端與后臺代碼,一旦修改后期生成的代碼很難合并,想想 Mybatis-Generator,基本上就是一次性的東西,雖然減輕了部分工作,可解決方式并非最佳。
開發(fā)后臺管理系統(tǒng)大部分情況下只想做個普通的增刪改查界面,用于數(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?=?"時間"),
????????????edit?=?@Edit(title?=?"時間",?search?=?@Search(vague?=?true))
????)
????private?Date?date;
}
功能體驗
這個界面雖然用 Vue + Ant Design + SSM 也能做出個大概,但仔細觀察會發(fā)現(xiàn)它有大量細節(jié)功能如:
有按鈕可以查詢、新增、批量刪除、excel 導入導出 可以對數(shù)據(jù)做篩選、隱藏某列、按某列排序 表格有分頁與匯總,可預覽單行數(shù)據(jù) 多種組件、有校驗規(guī)則
全部實現(xiàn)這些僅前端就需要大量的代碼,后端的接口與業(yè)務邏輯更不在少數(shù)。
但可以看到,用 erupt 只需要 30幾行 代碼就能完成,
完全不需要了解 Angular / React / Vue / Jquery
而且不需要了解 JavaScript / HTML / CSS
甚至不需要了解 Spring MVC / Mybatis / SQL
即便沒學過 erupt 也能猜到大部分配置的作用,只需要簡單配置就能完成所有后臺頁面開發(fā)。
這正是建立 erupt 的初衷,對于大部分常用頁面,應該使用最簡單的方法來實現(xiàn),甚至不需要學習各種框架和工具,專注核心業(yè)務,告別 996,省下的時間做自己喜歡做的事,從此不再因為繁瑣的后臺開發(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>
詳細使用步驟
模塊說明 | Module
erupt
├──?erupt-annotation?--?核心注解聲明
├──?erupt-core?--?核心功能實現(xiàn)
├──?erupt-data?--?數(shù)據(jù)實現(xiàn)包
?????├──?erupt-jpa?--?關(guān)系型數(shù)據(jù)庫erupt實現(xiàn)
?????└──?erupt-mongodb?--?mongodb數(shù)據(jù)庫erupt實現(xiàn)
├──?erupt-job?--?定時任務功能,支持動態(tài)定時任務,郵件發(fā)送,任務日志等功能
├──?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實現(xiàn)的工作流模塊(開發(fā)中)
├──?erupt-dataflow?--?基于erupt實現(xiàn)的數(shù)據(jù)流模塊(開發(fā)中)
└──?erupt-bi?--?通過 sql 加 js 混編實現(xiàn)動態(tài)報表,支持:多數(shù)據(jù)源、自定義函數(shù)、圖表開發(fā)等(付費模塊)
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 ...
源碼地址獲?。?
掃描下方公眾號回復?A115
最后,再給大家分享一份很好的算法刷題指南,我們都知道面試的不可避免的就是手撕代碼,而且一般都是很難掌握的,我在前面面試中就是每天刷題,很費時間,也是很辛苦的,今天給大家推薦份來自字節(jié)跳動大佬的算法手冊,我看過,感覺很不錯,大家可以先看一下下面的內(nèi)容:

掃描下方二維碼,回復「算法」即可獲取

