第一章 搭建简单实用基于spring-boot/cloud的微服务框架

最近在对spring-boot和spring-cloud进行梳理,基于此,封装了一套可开箱即用的业务底层框架。这套框架旨在提供可快速进行应用程序开发的,屏蔽一些基础的底层的实现专注业务开发,同时帮助有兴趣的同学学习交流。框架并没有多复杂的东西,只是对当下spring-boot和spring-cloud时实践的一些经验总结。这会是一个系列文章,会逐步把这个过程按章节来讲,并附上已经开源的源码,源码在码云上,欢迎一起讨论学习。很多人会讲spring-boot和spring-cloud已经足够简单了为甚么还要去做这件事呢,我的理解是这样做有三个目的:a.简化统一配置,避免重复劳动在每个项目都要干同样的事;b.建设团队规范(要是一千个哈姆雷特怎么玩),这点对团队和企业的价值很大的;c.规范统一技术版本升级和新技术引入,统一技术栈,降低团队的学习成本,专注于业务开发。有时候不是看这件事情有复杂难度来定义他的价值,能把这件不是那么难的事情很用心的去做好,它产生的价值事很大的。

一期框架图:我把整个框架整理一份思维导图:

一.框架概述

我把这个框架生态分成三大块:核心模块,功能集成模块,服务性模块。应用程序只要引入core模块就可以具备spring-boot和spring-cloud的基础功能和框架提供的基础封装功能了,详细的功能可以看图或者源码。我一直认为好的框架一定是简单,适用,演进的。 我实践过很多把core这个拆分成好多个jar,看似拆的很细,逼格很高但是实际对真实的业务并不友好,作为业务方对这样的基础功能你给一个包就好了。做的越少犯错也就越少,但并不是牺牲框架的能力为代价,这是一个很自然的过程,有时候我们总是想的太复杂,过度设计,抛开业务去谈框架是耍流氓的。

1.核心模块:core首先要具备的功能是spring-boot和spring-cloud,其次是我们平常开发一个应用都要干的事(后面章节展开来讲)。

2.功能集成模块:开发应用通常要具备的功能,但不是每个应用都需求具备的功能(后面章节展开来讲)。

3.服务模块:  开应用可能需求依赖的服务,但不是自己具备的或者说依赖他人具备是更好的事(后面章节展开来讲)。

二.项目结构概述:

1.项目结构:(还在持续开发中欢迎fork)

1.FW-BOOT:  是不会对外提供的只是用来管理spring-boot的依赖和配置用的,会被core依赖,这样对框架开发维护人员是比较好的

2.FW-CLOUD: 是不会对外提供的只是用来管理spring-cloud的依赖和配置用的,会被core依赖,这样对框架开发维护人员是比较好的。

3.FW-CORE: 主要分成几大块:

core-web:  对web服务api做了封装提供了web应用程序都会用到基础功能,比如:统一返回数据格式,统一异常,统一检验,在文档,统一上下文封装,统一参数解析等,应用程序引入后就不必关注这些,可以专注于业务。可扩展

core-mybastis:  对DB层的封装  可扩展

core-log: 统一日志输出封装

core-encrypt:  加解密封装,可扩展

core-common:  基础常量,基础实体,基础DAO等,包括应用程序基础工具类 可扩展

core-cache: 基础缓存工具类提供,可扩展

4.FW-SECURITY:  集成模块,基于spring-security,提供非微服务的认证授权功能。已包含基础表设计(后续完善)。应用程序只要依赖集成这个模块就能拥有基本的认证授权功能。认证包括了(账号密码,手机邮箱密码,三方(微信,微博,QQ)登录)。使用者可以下载源码自行扩展定义满足自己团队公司的认证授权方式。

5.FW-WEB: 框架服务测试web模块,示例了如何使用core框架和集成模块。

 总结:本章只是大概介绍了下整个框架生态,再次重申这不是一个多么复杂的框架,只是把简单的东西做的更好(杠精的世界我是领略过的)。后续将针对模块做详细的讲解(包括如何接入微服务和注册中心nacos),开始撸代码。(只谈架构,不撸代码,是没有灵魂的)

最后附上一张基于这个框架的系统生态图:后续将会基于上面的框架,搭建如下的微服务生态

 

https://gitee.com/aronDj/king-fw

原创文章 10 获赞 11 访问量 2085

猜你喜欢

转载自blog.csdn.net/dengzisheng/article/details/106118847