日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

瀏覽:36日期:2022-08-15 09:28:58

最近接觸到個(gè)新項(xiàng)目,發(fā)現(xiàn)它用了一個(gè)比較有意思的框架,可以說實(shí)現(xiàn)了我剛?cè)胄袝r(shí)候的夢想,所以這里馬不停蹄的和大家分享下。

在我剛開始工作接觸的項(xiàng)目都還沒做前后端分離,經(jīng)常需要后端來維護(hù)頁面,有時(shí)候覺得自己好像天生不適合干前端,你要是讓我研究研究后端的技術(shù),看個(gè)中間件源碼啊,分析分析什么框架底層原理啊,這都問題不大,偶爾搞一下JS也可以。你要是讓我寫個(gè)css樣式,那簡直要命了,一點(diǎn)也提不起興趣,不知道有沒有跟我一樣的。

今天要介紹的框架直接不用寫頁面了,話不多說,下邊咱們直奔主題

Erupt一個(gè)通用后臺(tái)管理框架,據(jù)說有 超低代碼量、 零前端代碼、零 CURD操作、無需建表,純Java注解開發(fā)等特色,號(hào)稱三分鐘就可以搭建一個(gè)完整的后臺(tái)管理系統(tǒng)。

額~ 聽著好像還挺流批的,到底是不是有這么魔幻,咱們一起用起來感受下。

首先來搭建一下環(huán)境,目前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> <!--用戶權(quán)限管理--> <dependency> <groupId>xyz.erupt</groupId> <artifactId>erupt-upms</artifactId> <version>1.6.7</version> </dependency> <!--接口數(shù)據(jù)安全--> <dependency> <groupId>xyz.erupt</groupId> <artifactId>erupt-security</artifactId> <version>1.6.7</version> </dependency> <!--后臺(tái)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 文件只要簡單配置數(shù)據(jù)源就好,提前準(zhǔn)備個(gè)數(shù)據(jù)庫,說到數(shù)據(jù)庫這里我說個(gè)小插曲。

我之前在Github 提交案例代碼的時(shí)候(https://github.com/chengxy-nds/Springboot-Notebook ),由于沒太注意沒屏蔽敏感信息,導(dǎo)致云數(shù)據(jù)庫賬號(hào)泄露了,最近我發(fā)現(xiàn)已經(jīng)有小伙伴在數(shù)據(jù)庫上跑項(xiàng)目了,仔細(xì)看了看里邊的數(shù)據(jù)結(jié)構(gòu),發(fā)現(xiàn)像是個(gè)畢設(shè)項(xiàng)目。

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

本身這個(gè)庫就是我跑demo案例的一個(gè)測試庫,為的就是讓小伙伴能把更多時(shí)間放在研究案例的技術(shù)點(diǎn)上,減少搭建環(huán)境這種沒技術(shù)含量的瑣碎事。

發(fā)現(xiàn)歸發(fā)現(xiàn),這里我沒改密碼,也沒刪他們的庫,如果你要用就繼續(xù)用著,但玩歸玩,鬧歸鬧,你不能亂動(dòng)不是你的數(shù)據(jù)!影響其他人學(xué)習(xí)就不好了。

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: trueserver: port: 8888

說了點(diǎn)題外話,我們繼續(xù)搞起~

其實(shí)到這Erupt的環(huán)境就搭建完了,額~ ,這就完了?

咱們什么也沒干,項(xiàng)目是個(gè)空殼子,一行代碼也沒寫,好像連個(gè)表也沒建啊!

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

別著急咱們先啟動(dòng)下項(xiàng)目,看到控制臺(tái)打印出很多建表語句和插入語句,這是因?yàn)镋rupt框架底層應(yīng)用JPA持久化,預(yù)置創(chuàng)建了一些系統(tǒng)表和數(shù)據(jù)。

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

注意:Erupt預(yù)置表只會(huì)隨項(xiàng)目第一次啟動(dòng)構(gòu)建一次,如果想重新創(chuàng)建,需刪除.Erupt文件(一般在項(xiàng)目的工作空間內(nèi)),獲取文件位置方式

System.getProperty('user.dir')

再看數(shù)據(jù)庫里創(chuàng)建了16張系統(tǒng)表,其中e_upms_user表是用戶表,默認(rèn)只有一個(gè)管理員賬號(hào),用戶名、密碼都是erupt。

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

緊接著我們?cè)L問http://127.0.0.1:8888/,看一下是個(gè)什么效果,竟然有個(gè)完整的登錄頁面。

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

用上邊的用戶名、密碼直接登錄,erupt已經(jīng)預(yù)先實(shí)現(xiàn)了完整的權(quán)限控等功能,而到這我們幾乎是沒寫過什么代碼的,都是框架封裝好了的,菜單類數(shù)據(jù)全部從數(shù)據(jù)庫動(dòng)態(tài)獲取,一個(gè)基礎(chǔ)的后臺(tái)管理系統(tǒng)就搭建完了,有點(diǎn)哇塞。

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

有趣的頁面

那么問題來了?想要自定義頁面怎么辦?

開篇我們就說過erupt是零前端代碼,全部基于Java注解開發(fā)的,接下來用Java注解寫個(gè)簡單頁面體驗(yàn)下。

erupt有兩個(gè)核心注解@Erupt,@EruptField

@Erupt注解修飾類,代表定義一個(gè)頁面 @EruptField注解修飾字段,代表頁面上顯示的字段名 @Power注解控制是否操作按鈕,增、刪、改、查、導(dǎo)入、導(dǎo)出等@Search注解表示字段為搜索條件 @Table注解表示頁面取數(shù)據(jù)對(duì)應(yīng)的表,如果不設(shè)置,頁面第一次初始化的時(shí)候,會(huì)根據(jù)類字段值自動(dòng)創(chuàng)建一張和類名一致的表名。

注解類型比較多,不一一列舉了,更多的自己到官網(wǎng)瞅:https://www.erupt.xyz

下邊我們定義一個(gè)Student類,加上@Erupt,@EruptField注解,這樣頁面和元素就算寫完了,是不是有點(diǎn)顛覆認(rèn)知。

/* * @Erupt注解修飾在類上,@EruptField注解修飾在字段上 * 其他注解均為Jpa注解 */@Getter@Setter@Erupt(name = '學(xué)生表', power = @Power(importable = true, export = true))@Entity//@Table(name = 't_student')public class Student extends BaseModel { @EruptField( views = @View(title = '學(xué)生姓名'), edit = @Edit(title = '學(xué)生姓名', notNull = true, search = @Search(vague = true)) ) private String studentName; @EruptField( views = @View(title = '所屬班級(jí)'), edit = @Edit(title = '所屬班級(jí)', notNull = true) ) private String studentClass; @EruptField( views = @View(title = '學(xué)生年齡'), edit = @Edit(title = '學(xué)生年齡', notNull = true) ) private String studentAge; @Lob @EruptField( views = @View(title = '學(xué)生性別'), edit = @Edit(title = '學(xué)生性別', notNull = true) ) private String studentSex; @EruptField( views = @View(title = '考核狀態(tài)'), edit = @Edit(title = '考核狀態(tài)', notNull = true, boolType = @BoolType(trueText = '通過', falseText = '掛科'), search = @Search) ) private Boolean status;}

但此時(shí)新創(chuàng)建的頁面不會(huì)顯示出來,還需要我們手動(dòng)做一個(gè)映射關(guān)系,在菜單維護(hù)中自定義個(gè)菜單,類型值一定要為新建的 類名 Student。

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

保存刷新后會(huì)看到我們的新頁面出現(xiàn)了,而且頁面的功能很完整,基礎(chǔ)操作、查詢、導(dǎo)入、導(dǎo)出功能都自動(dòng)實(shí)現(xiàn)了。

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

頁面新增一個(gè)學(xué)生信息,對(duì)應(yīng)的Student表也多了條記錄,而這個(gè)持久化的過程完全由框架來做。

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

盡管Erupt 框架對(duì)前后端代碼做了深度封裝,但它提供了豐富靈活的自定義接口,來滿足我們的個(gè)性化需求。

比如我們?cè)阡浫胄聦W(xué)生信息時(shí),希望屏蔽名字為張三的同學(xué),可以對(duì)頁面按鈕功能做代理dataProxy,實(shí)現(xiàn)自定義的邏輯,對(duì)哪個(gè)按鈕代理就實(shí)現(xiàn)對(duì)應(yīng)方法即可,如beforeAdd、afterAdd是對(duì)新增按鈕的代理。

@Getter@Setter@Erupt(name = '學(xué)生表',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) { //后臺(tái)字段校驗(yàn) 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) { } }

當(dāng)我們?cè)陧撁驿浫朊譃閺埲耐瑢W(xué)時(shí),成功屏蔽。其他類似的功能還有很多,這里就不一一舉例了,看文檔看文檔~

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

如果我們想要按傳統(tǒng)的方式開發(fā)接口,不用擔(dān)心會(huì)和Erupt的頁面生成規(guī)則有沖突,絲毫不會(huì)受影響。而且Erupt內(nèi)部集成了JPA,提供了現(xiàn)成的dao接口,只要調(diào)用對(duì)應(yīng)API即可上手開發(fā)。

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

如果你不想手寫Java代碼也沒關(guān)系,Erupt還提供了代碼生成器,自定義Java類名和字段名,可以生成代碼,直接copy就行了。

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

說到這我只介紹了Erupt一丟丟的基礎(chǔ)特性,主要是想讓小伙伴知道有這么個(gè)敏捷利器。

不僅如此它還支持豐富的數(shù)據(jù)類型,內(nèi)置了像定時(shí)任務(wù)管理、多表聯(lián)合查詢、前后端分離部署、接口權(quán)限、操作記錄、多數(shù)據(jù)源、郵件系統(tǒng)、黑白名單等等很多實(shí)用功能,都直接調(diào)用API就可以用。

3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼

說在后邊

Erupt 框架的優(yōu)點(diǎn)是顯而易見的,快捷、高效、上手容易,對(duì)新手相當(dāng)?shù)挠押茫趯?shí)際生產(chǎn)環(huán)境中我只是用它來做一些配置字典類的數(shù)據(jù)管理。

因?yàn)樗纳疃确庋b雖然讓開發(fā)變的簡單高效,可對(duì)于業(yè)務(wù)相對(duì)復(fù)雜、高度定制的系統(tǒng)來說,Erupt 框架顯得力不從心,更關(guān)鍵的一點(diǎn),它的社區(qū)并不算特別活躍,畢竟是個(gè)小眾框架。

不過,技術(shù)從來都是服務(wù)于業(yè)務(wù)的,如果你的業(yè)務(wù)與Erupt的氣質(zhì)相匹配,別猶豫,用它!

到此這篇關(guān)于3分鐘純 Java 注解搭個(gè)管理系統(tǒng)的示例代碼的文章就介紹到這了,更多相關(guān)Java 注解搭個(gè)管理系統(tǒng)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲欧美日本日韩| 亚洲在线一区| 国产综合精品一区| 国产亚洲精品v| 亚洲理论在线| 亚洲精品一区三区三区在线观看| 中文字幕在线视频久| 一区二区三区四区在线看| 国产精品亲子伦av一区二区三区| 在线亚洲激情| 国产乱人伦丫前精品视频 | 最新国产精品| 亚洲精品自拍| 精品三级在线| 国产精品成人3p一区二区三区| 999久久久91| 精品在线99| 午夜宅男久久久| 国产成人精选| 久久国产成人| 久久精品72免费观看| 国产精品久一| 视频在线观看国产精品| 午夜精品网站| 国产精品巨作av| 午夜国产一区二区| 美女久久久精品| 激情丁香综合| 国产精品qvod| 欧美激情视频一区二区三区免费 | 视频一区日韩精品| 亚洲精品自拍| 日韩av不卡在线观看| 美女久久99| 高清av一区| 欧美成人基地| 欧美午夜精品一区二区三区电影| 国产精品一区二区精品| 欧美精品99| 91av亚洲| 激情中国色综合| 日韩精品免费视频一区二区三区| 欧美一级久久| 午夜久久av | 色综合www| 日韩三级视频| 在线 亚洲欧美在线综合一区| 国产精品99一区二区三| 91麻豆精品激情在线观看最新 | 国产精品午夜av| 国产精品精品国产一区二区| 中文字幕亚洲精品乱码| 日本成人在线网站| 蜜桃一区二区三区在线| 欧美精品一区二区三区精品| 日本午夜精品久久久久| 黄色日韩精品| 久久av超碰| 久久夜夜操妹子| 日韩不卡一区二区| 日韩精品高清不卡| 国产欧美日韩免费观看| 国产精品黄网站| 日韩av网站在线免费观看| 精精国产xxxx视频在线野外| 国产日产一区| 国产亚洲毛片| 日本特黄久久久高潮| 人在线成免费视频| 欧美亚洲专区| 日韩视频一区| 91久久亚洲| 国产传媒av在线| av日韩中文| 日本一区二区免费高清| 亚洲一二av| 久久视频国产| 色爱av综合网| 婷婷国产精品| 精品一区电影| 视频一区中文字幕国产| 精品久久久亚洲| 日韩精品一区第一页| 老司机精品久久| 夜夜嗨一区二区| 久久一区精品| 乱一区二区av| 捆绑调教美女网站视频一区| 日韩av网站免费在线| 欧美一级精品| 欧美日韩1区| 国产精品xvideos88| 亚洲精品自拍| 欧美日韩视频免费看| 国产一二在线播放| 欧美日韩亚洲三区| 国产亚洲一区在线| 亚洲欧美日本国产专区一区| 日韩一区二区在线免费| 精品中文在线| 99久久激情| 日韩成人午夜精品| 欧洲毛片在线视频免费观看| 噜噜噜久久亚洲精品国产品小说| 日韩中文欧美| 中文字幕系列一区| 国产欧洲在线| 欧美欧美黄在线二区| 免费视频最近日韩| 在线亚洲观看| 久久国产人妖系列| 欧美视频久久| 欧美日韩视频免费观看| 久久三级毛片| 欧美gv在线| 中文字幕色婷婷在线视频| 亚洲电影在线| 国产美女高潮在线| 在线看片福利| 97精品中文字幕| 激情欧美一区| 久久国产精品成人免费观看的软件| 国产精品黑丝在线播放| 蜜臀久久99精品久久久久宅男| 久久九九电影| 日韩一区二区久久| 日韩va亚洲va欧美va久久| 中文字幕亚洲精品乱码| 日韩极品在线观看| 久久久精品网| 免费观看久久久4p| 国产探花在线精品| 国产精品久久久久9999高清| 久久国产电影| 亚洲精品少妇| 成人羞羞视频在线看网址| 精品国模一区二区三区| 午夜视频一区二区在线观看| 亚洲精品一二三**| 国产欧美日韩精品一区二区三区| 日韩中文字幕区一区有砖一区 | 久久久777| 日韩国产欧美在线播放| 日本aⅴ亚洲精品中文乱码| 香蕉久久99| 久久只有精品| 午夜久久中文| 91欧美在线| 欧美日韩a区| 精品一区毛片| 国产精品久久乐| 丝袜诱惑一区二区| 亚洲涩涩av| 久久久国产精品一区二区中文| 欧美69视频| 日韩精品亚洲专区在线观看| 成人亚洲一区二区| 国模大尺度视频一区二区| 国内精品美女在线观看| 日韩高清在线不卡| 国产一区二区三区久久| 麻豆中文一区二区| 国产精品99精品一区二区三区∴| 久久久91麻豆精品国产一区| 国产精品精品| 成人片免费看| 卡一精品卡二卡三网站乱码| 日韩一区二区三区免费播放| 九九色在线视频| 98精品久久久久久久| 免费看av不卡| 午夜av一区| 日韩精品久久久久久久软件91| 久久中文精品| 国产精品一区二区av交换 | 欧美日韩精品免费观看视欧美高清免费大片 | 午夜亚洲一区| 日韩av中文在线观看| 久久精品欧洲| 国产精品男女| 欧美一区网站| 亚洲91精品| 亚洲人成亚洲精品| 国产一区视频在线观看免费| 日本成人在线不卡视频| 国产精品久久久久蜜臀| 91嫩草亚洲精品| 一区二区精品| 久久久久久网| 中文精品电影| 欧美高清一区| 国产另类在线| 国产精品videossex| 激情欧美一区二区三区| 亚洲日产国产精品| 天堂а√在线最新版中文在线| 蜜桃av一区二区在线观看| 黄页网站一区| 99久久婷婷这里只有精品| 欧美日韩一区二区三区在线电影|