您好,登錄后才能下訂單哦!
本篇內容主要講解“如何搭建Java管理系統”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何搭建Java管理系統”吧!
Erupt
一個通用后臺管理框架,據說有 超低代碼量、 零前端代碼、零 CURD操作、無需建表,純Java注解開發等特色,號稱三分鐘就可以搭建一個完整的后臺管理系統。
額~ 聽著好像還挺流批的,到底是不是有這么魔幻,咱們一起用起來感受下。
首先來搭建一下環境,目前Erupt
支持Java
版本1.8.0
及以上、Spring Boot
版本2.0
及其以上。
搭建easy
pom.xml
引入必要的jar
包
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--用戶權限管理--> <dependency> <groupId>xyz.erupt</groupId> <artifactId>erupt-upms</artifactId> <version>1.6.7</version> </dependency> <!--接口數據安全--> <dependency> <groupId>xyz.erupt</groupId> <artifactId>erupt-security</artifactId> <version>1.6.7</version> </dependency> <!--后臺WEB界面--> <dependency> <groupId>xyz.erupt</groupId> <artifactId>erupt-web</artifactId> <version>1.6.7</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>compile</scope> </dependency> </dependencies>
application.yml
文件只要簡單配置數據源就好,提前準備個數據庫,說到數據庫這里我說個小插曲。
我之前在Github
提交案例代碼的時候(https://github.com/chengxy-nds/Springboot-Notebook
),由于沒太注意沒屏蔽敏感信息,導致云數據庫賬號泄露了,最近我發現已經有小伙伴在數據庫上跑項目了,仔細看了看里邊的數據結構,發現像是個畢設項目。
本身這個庫就是我跑demo
案例的一個測試庫,為的就是讓小伙伴能把更多時間放在研究案例的技術點上,減少搭建環境這種沒技術含量的瑣碎事。
發現歸發現,這里我沒改密碼,也沒刪他們的庫,如果你要用就繼續用著,但玩歸玩,鬧歸鬧,你不能亂動不是你的數據!影響其他人學習就不好了。
spring: datasource: url: jdbc:mysql://47.93.6.5:3306/erupt2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root password: 123456 jpa: show-sql: true generate-ddl: true database-platform: org.hibernate.dialect.MySQL5InnoDBDialect database: mysql profiles: active: dev mail: username: xxxx@qq.com password: xxxxxxx host: smtp.qq.com properties: mail.smtp.ssl.auth: true mail.smtp.ssl.enable: true mail.smtp.ssl.required: true server: port: 8888
說了點題外話,我們繼續搞起~
其實到這Erupt
的環境就搭建完了,額~ ,這就完了?
咱們什么也沒干,項目是個空殼子,一行代碼也沒寫,好像連個表也沒建啊!
別著急咱們先啟動下項目,看到控制臺打印出很多建表語句和插入語句,這是因為Erupt
框架底層應用JPA
持久化,預置創建了一些系統表和數據。
注意:Erupt
預置表只會隨項目第一次啟動構建一次,如果想重新創建,需刪除.Erupt
文件(一般在項目的工作空間內),獲取文件位置方式
System.getProperty("user.dir")
再看數據庫里創建了16張系統表,其中e_upms_user
表是用戶表,默認只有一個管理員賬號,用戶名、密碼都是erupt
。
緊接著我們訪問http://127.0.0.1:8888/
,看一下是個什么效果,竟然有個完整的登錄頁面。
用上邊的用戶名、密碼直接登錄,erupt
已經預先實現了完整的權限控等功能,而到這我們幾乎是沒寫過什么代碼的,都是框架封裝好了的,菜單類數據全部從數據庫動態獲取,一個基礎的后臺管理系統就搭建完了,有點哇塞。
有趣的頁面
那么問題來了?想要自定義頁面怎么辦?
開篇我們就說過erupt
是零前端代碼,全部基于Java
注解開發的,接下來用Java
注解寫個簡單頁面體驗下。
erupt
有兩個核心注解@Erupt
,@EruptField
@Erupt
注解修飾類,代表定義一個頁面
@EruptField
注解修飾字段,代表頁面上顯示的字段名
@Power
注解控制是否操作按鈕,增、刪、改、查、導入、導出等
@Search
注解表示字段為搜索條件
@Table
注解表示頁面取數據對應的表,如果不設置,頁面第一次初始化的時候,會根據類字段值自動創建一張和類名一致的表名。
注解類型比較多,不一一列舉了,更多的自己到官網瞅:
https://www.erupt.xyz
下邊我們定義一個Student
類,加上@Erupt
,@EruptField
注解,這樣頁面和元素就算寫完了,是不是有點顛覆認知。
/* * @Erupt注解修飾在類上,@EruptField注解修飾在字段上 * 其他注解均為Jpa注解 */ @Getter @Setter @Erupt(name = "學生表", power = @Power(importable = true, export = true) ) @Entity //@Table(name = "t_student") public class Student extends BaseModel { @EruptField( views = @View(title = "學生姓名"), edit = @Edit(title = "學生姓名", notNull = true, search = @Search(vague = true)) ) private String studentName; @EruptField( views = @View(title = "所屬班級"), edit = @Edit(title = "所屬班級", notNull = true) ) private String studentClass; @EruptField( views = @View(title = "學生年齡"), edit = @Edit(title = "學生年齡", notNull = true) ) private String studentAge; @Lob @EruptField( views = @View(title = "學生性別"), edit = @Edit(title = "學生性別", notNull = true) ) private String studentSex; @EruptField( views = @View(title = "考核狀態"), edit = @Edit(title = "考核狀態", notNull = true, boolType = @BoolType(trueText = "通過", falseText = "掛科"), search = @Search) ) private Boolean status; }
但此時新創建的頁面不會顯示出來,還需要我們手動做一個映射關系,在菜單維護中自定義個菜單,類型值一定要為新建的 類名 Student
。
保存刷新后會看到我們的新頁面出現了,而且頁面的功能很完整,基礎操作、查詢、導入、導出功能都自動實現了。
頁面新增一個學生信息,對應的Student
表也多了條記錄,而這個持久化的過程完全由框架來做。
盡管Erupt
框架對前后端代碼做了深度封裝,但它提供了豐富靈活的自定義接口,來滿足我們的個性化需求。
比如我們在錄入新學生信息時,希望屏蔽名字為張三
的同學,可以對頁面按鈕功能做代理dataProxy
,實現自定義的邏輯,對哪個按鈕代理就實現對應方法即可,如beforeAdd
、afterAdd
是對新增按鈕的代理。
@Getter @Setter @Erupt(name = "學生表",dataProxy = {StudentDataProxy.class}, power = @Power(importable = true, export = true) ) @Entity //@Table(name = "t_student") public class Student extends BaseModel { } public class StudentDataProxy implements DataProxy<Student> { @Override public void beforeAdd(Student student) { //后臺字段校驗 if ("張三".equals(student.getStudentName())) { throw new EruptApiErrorTip("名稱禁止為張三!"); } } @Override public void afterAdd(Student student) { } @Override public void afterUpdate(Student student) { } @Override public void afterDelete(Student student) { } }
當我們在頁面錄入名字為張三
的同學時,成功屏蔽。其他類似的功能還有很多,這里就不一一舉例了,看文檔看文檔~
如果我們想要按傳統的方式開發接口,不用擔心會和Erupt
的頁面生成規則有沖突,絲毫不會受影響。而且Erupt
內部集成了JPA
,提供了現成的dao
接口,只要調用對應API即可上手開發。
如果你不想手寫Java
代碼也沒關系,Erupt
還提供了代碼生成器,自定義Java
類名和字段名,可以生成代碼,直接copy
就行了。
說到這我只介紹了Erupt
一丟丟的基礎特性,主要是想讓小伙伴知道有這么個敏捷利器。
不僅如此它還支持豐富的數據類型,內置了像定時任務管理
、多表聯合查詢
、前后端分離部署
、接口權限
、操作記錄
、多數據源
、郵件系統
、黑白名單
等等很多實用功能,都直接調用API就可以用。
到此,相信大家對“如何搭建Java管理系統”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。