開源SpringBoot快速開發框架

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等
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章