easy_boot
地址:https://github.com/Mydreamandreality/easy_boot
跟大夥閒扯一會先:
雖然SpringBoot已經很牛逼了,但是在實際業務開發中,還是有很多的重複性工作,比如分佈式組件集成,中間件的集成,java_config配置,全局異常,註解切面,多數據源,高頻工具類編寫等等,你每次寫新項目都要把這些重複的來一遍,再去測試一遍,還是比較麻煩的
後來就一直想要一個開源的基於Spring的後端開發框架,能夠真正的實現開箱即用,但是找了一圈,沒有發現什麼能夠滿足我需求的框架,要麼就是功能太少,要麼就是感覺不適合用做與生產環境,要麼就是收費,沒辦法,乾脆自己擼一個吧,就是一個SpringBoot框架提供目前比較主流的解決方案以及案例demo。
舉個簡單的例子,就比如我會在這個框架中集成ElasticsearchApi,把配置和優化都搞了,然後再寫幾個使用的案例,比如寫個全文檢索,寫幾個統計,再比如分佈式鎖,我會寫三套方案,並且是可插拔的,你想用哪個你就選擇哪個用好了,不用自己從頭再開始測試,配置等等,這個項目核心就是讓你快速的開發業務,有更多的時間去做自己的事情,【比如玩OW】
我的想法就是用maven多模塊分兩個端,【暫時不考慮springCLoud】一個是service端,一個是運維端,service我就是提供這些基礎服務,運維端主要是做運維管理的,比如service端產生的日誌信息,由server端來處理分析、然後通過各種方式來告警等等場景
現在基本的東西已經都集成了,正在開發中,要是感興趣的留言,可以一塊開發完善
一、簡介
1.1 概述
easy-boot是SpringBoot快速開發的通用框架,其核心設計目標是減少項目開發中基礎模塊的設計和開發,
該框架本身不做業務層的代碼開發,只提供核心的解決方案提供給開發人員使用,讓開發人員能夠快速的、簡單的、可擴展的進行業務開發,達到開箱即用的效果
1.2 框架
- 1、語言:基於JDK13進行開發,基於JDK13對於使用該項目進行學習的同學是很友好的,可以學習到很多的新特性
不過考慮到大部分夥伴的生產環境都是1.8的版本,所以如果需要替換的話可以直接修改pom文件中的JDK版本即可 - 2、Web框架:採用SpringBoot-2.2.5.RELEASE版本進行開發
- 3、ORM框架:ORM使用Mybatis-plus框架進行集成開發,(Mybatis-Plus是基於Mybatis的增強版,功能強悍
- 4、中間件:Redis、Elasticsearch、MySQL、Zookeeper、XXL-JOB,Swagger等
- 5、安全框架:Shiro或者SpringSecurity(這個還沒想好,到時候再看吧
- 6、工具庫:提供高頻工具、GoogleGuava等
1.3 能力
- 1、基於SpringBoot,簡化大量的XML文件配置和項目依賴
- 2、使用Mybatis-plus,使用JPA快速開發簡單業務,使用傳統XML開發核心業務,簡單易擴展,包括多數據源方案等
- 3、提供Redis核心功能:數據緩存、消息隊列、消息廣播- 全部使用Redis搞定
- 4、提供全文檢索、數據統計功能:基於Elasticsearch7.x(最新版本),並且兼容5.x-7.x之間所有的ES版本
- 5、分佈式鎖的實現:分佈式鎖(Redis、Zookeeper、MySQL)提供三種解決方案,自由選擇,快速插拔解決業務痛點
- 6、分佈式限流的實現:單機提供令牌桶限流方案,分佈式提供Redis分佈式限流解決方案,根據自身業務自由選擇
- 7、分佈式任務調度:使用主流開源方案實現 XXL-JOB
- 8、全局異常處理:全局異常被攔截後,發送到Redis消息隊列,由Server運維模塊處理異常請求日誌
- 9、全局告警:在產生異常請求日誌或者觸發其它策略時,提供告警接口:郵件告警、短信告警、釘釘告警數據推送等
- 10、提供後端常用工具:定時任務、異步任務管理,自定義註解等
- 11、提供統一鑑權模塊:基於Shiro的用戶權限模塊
- 12、提供Server運維模塊:運維模塊的核心功能爲【分佈式任務調度管理、限流閥值更新、異常日誌處理等】
1.4 安全
小弟本身是搞信息安全開發的,所以對於安全比較敏感,在easy-boot中我會提供目前主流的安全解決方案,儘可能的保證項目本身的穩固性
- 1、公私鑰驗籤
- 2、常見Hash算法
- 3、數據庫Hash(加鹽+pwd)存儲
- 4、基於JWT的身份驗證
- 5、統一的鑑權模塊
二、更新記錄
- 1、目前項目還在開發中、如果感興趣想要一起開發或者學習可以加WX:17610096728討論
三、文檔
- 1、項目開發中我會把一些比較核心的功能整理成文檔形式提供給大家
- 2、不熟悉Elasticsearch和SpringBoot的同學可以先去看我的博客提前學習
- 3、對Spark和Hadoop感興趣的也可以去我的博客學習
博客地址
https://blog.csdn.net/youbitch1
V1.0開發記錄
- 1、集成Elasticsearch、Redis、Swagger等