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