bird框架系列是一套先後端分離的總體解決方案。其包括:前端
- 基於React的工程化的前端框架:bird-front;
- 基於Spring boot與Dubbo的分佈式服務框架:bird-java;
bird-java是以Spring boot與Dubbo爲基礎的分佈式服務框架,專一於業務開發,提煉中後臺應用中的經典業務場景,盡我所能的在我目前的業務場景下作到最佳實踐。本篇文章主要是對bird-java進行概述以及相關文章的彙總。java
系列文章git
- 快速開始
- bird-java中的一些設計思想
- 服務組成——model
- 服務組成——mapper
- 服務組成——service
- 服務的暴露與調用
- 服務之間的事件傳遞——Eventbus
- Web層——接口規約
- Web層——異常處理
- Web層——單點登錄SSO
- Web層——簡易文件服務器
- Web層與Dubbo服務之間Session信息的統一
- 經典業務場景——表格增刪改查
- 經典業務場景——表單開發
- 經典業務場景——資源權限
技術選型github
- 基礎框架:spring
- 服務調度:dubbo
- web層:spring-boot
- 緩存:redis
- 數據訪問:mybatis、mybatis-plus
- 數據庫鏈接池:druid
- 消息隊列:kafka
- 日誌:slf4j、logback
- 任務調度:quartz
- 服務總線:基於Kafka自研EventBus
- 身份認證:自研單點登陸
架構圖web

- 接入層:即web層,服務的使用者,面向用戶。多系統之間經過sso實現登陸與權限的統一控制。
- 服務層:服務的提供者,每一個服務都可集羣部署,服務之間可經過RPC調用,也可經過EventBus實現通訊。
- 數據層:包括數據的持久化與緩存。每一個服務可對應其各自的數據庫,緩存使用redis。
- 基礎設施層:爲以上各層提供服務,包括日誌、工具類、任務調度等。
功能特性redis
bird-java提供了許多功能特性,包括:spring
- 分佈式。每一個服務都可集羣部署,服務間可自由通訊,每一個服務可擁有本身的數據庫,可單獨作讀寫分離。
- EventBus事件總線。讓服務間事件傳遞像本地程序同樣簡單。
- 全自動CRUD,表格增刪查改、篩選、排序、分頁均從框架層面解決,業務編碼量不到20行。
- 實現從db->mappper->service->controller各層代碼一鍵生成。
- 爲web與service項目提供不一樣類型的starter,按配置注入對應的組件,使編碼環境更加簡潔。
示例項目介紹數據庫

- service-xxx:服務,服務拆分的最小單位。
- service-xxx-api:服務定義,包括服務接口、Model、DTO、EventArg的定義。
- service-xxx-impl:服務的實現,包括服務實現、Mapper。服務部署的最小單位。
- web-xxx:web層,對外提供接口,可根據業務須要拆分爲不一樣的web層。
項目地址後端
項目地址:https://github.com/liuxx001/bird-java,有興趣的朋友們能夠看看。
api