
知識改變命運,擼碼使我快樂,2020繼續(xù)游走在開源界
點贊再看,養(yǎng)成習(xí)慣
給我來個Star吧,ApiBoot Admin源碼倉庫:https://gitee.com/minbox-projects/api-boot-admin
前言
ApiBoot發(fā)布到目前為止已經(jīng)9個月的時光了,在這段時間內(nèi)有過熱淚迎面、有過沮喪、也有過無從下手的感覺,堅持開源是我作為程序員的愿景,盡我所能,繼續(xù)堅持?。?!
這兩天公眾號并未推文,其實我在做一件很有意義的事情,基于最新版本的ApiBoot編寫了一款前后端分離的腳手架,因為不是專業(yè)的前端出身,所以采用了目前市面上社區(qū)比較活躍的集成框架vue-element-admin,由目前就職于字節(jié)跳動 花褲衩 開源的一款基于Vue的管理平臺腳手架。
存在之道
由于學(xué)習(xí)ApiBoot的小伙伴越來越多,也不能很全面的回復(fù)大家的所要了解的問題,我總結(jié)了下大多數(shù)還是因為文章中所講解的是拆分后的使用方式,如果真正整合到自己的項目中可能就不會了,真的有這么難嗎?
這個并不是我希望看到的事情,因為ApiBoot本身秉承著快速集成第三方框架、開箱即用、提供開發(fā)效率的宗旨,如果太困難就完全失去了意義。
針對這個問題,我創(chuàng)建了一個名為api-boot-admin的開源項目,用了幾個日夜的時間,將ApiBoot內(nèi)的各個常用組件進行整合,項目采用前后端分離的方式進行構(gòu)建,從使用的根本來解決問題。
源碼
界面一覽


使用環(huán)境
由于前端采用的是vue-element-admin集成解決方案,所以本地如果想要使用需要有如下的環(huán)境支持:
- NodeJs 10.18.0+
- Npm 6.13.4+
接口架構(gòu)組成
ApiBoot Admin所使用的接口都是由admin-services這個子模塊進行提供,導(dǎo)入IDEA開發(fā)工具可直接使用XxxApplication方式運行。
admin-services是一個完善的基礎(chǔ)接口服務(wù)項目,內(nèi)部包含了在構(gòu)建接口服務(wù)項目時大多數(shù)場景能用到的配置、公共類、枚舉、統(tǒng)一請求、統(tǒng)一響應(yīng)、數(shù)據(jù)驗證等。
- SpringBoot Profiles(多環(huán)境激活)
- ControllerAdvice(統(tǒng)一控制器異常捕捉通知)
- MapStruct(實體實例轉(zhuǎn)換)
- ApiBoot Security(組件化快速集成Spring Security)
- ApiBoot OAuth2(組件化快速集成OAuth2)
- ApiBoot MyBatis Enhance(基于MyBatis的增強ORM)
- ApiBoot MyBatis Enhance Codegen(自動生成實體的Maven Plugin)
- ApiBoot MyBatis Pageable(自動化分頁組件,提供給ElementUI內(nèi)Table使用)
- ApiBoot Logging(分布式鏈路日志)
- ApiBoot Swagger(自動生成接口文檔)
- 接口Api基礎(chǔ)類
- 業(yè)務(wù)Service基礎(chǔ)類
日志服務(wù)
ApiBoot Admin內(nèi)名為admin-log-server的子模塊項目,該項目主要是用于接收admin-services所產(chǎn)生的鏈路請求日志,然后進行保存到數(shù)據(jù)庫中,內(nèi)部通過ApiBoot Logging Admin實現(xiàn)。
只需要添加
@EnableLoggingAdmin一個注解在啟動類上就可以實現(xiàn)鏈路日志的接收以及自動化保存,是不是簡單的令人發(fā)指?
通過添加spring-boot-starter-security來保證日志上報的安全性,上報時通過配置Basic User基礎(chǔ)認證實現(xiàn)。
接口文檔
ApiBoot Admin內(nèi)部通過集成ApiBoot Swagger來實現(xiàn)接口文檔的自動生成,在接口Api類內(nèi)的方法上簡單的配置Swagger2所提供的注解就可以實現(xiàn)文檔的自動生成,支持在線調(diào)試,還支持設(shè)置OAuth2所生成的請求令牌調(diào)試接口。
