知识改变命运,撸码使我快乐,2020继续游走在开源界 点赞再看,养成习惯 给我来个Star吧,ApiBoot Admin源码仓库:https://gitee.com/minbox-projects/api-boot-admin
前言
ApiBoot
发布到目前为止已经9个月的时光了,在这段时间内有过热泪迎面、有过沮丧、也有过无从下手的感觉,坚持开源是我作为程序员的愿景,尽我所能,继续坚持!!!
这两天公众号并未推文,其实我在做一件很有意义的事情,基于最新版本的ApiBoot
编写了一款前后端分离的脚手架,因为不是专业的前端出身,所以采用了目前市面上社区比较活跃的集成框架vue-element-admin
,由目前就职于字节跳动 花裤衩 开源的一款基于Vue
的管理平台脚手架。
存在之道
由于学习ApiBoot
的小伙伴越来越多,也不能很全面的回复大家的所要了解的问题,我总结了下大多数还是因为文章中所讲解的是拆分后的使用方式,如果真正整合到自己的项目中可能就不会了,真的有这么难吗?
这个并不是我希望看到的事情,因为ApiBoot
本身秉承着快速集成第三方框架、开箱即用、提供开发效率的宗旨,如果太困难就完全失去了意义。
针对这个问题,我创建了一个名为api-boot-admin
的开源项目,用了几个日夜的时间,将ApiBoot
内的各个常用组件进行整合,项目采用前后端分离的方式进行构建,从使用的根本来解决问题。
源码
- https://gitee.com/minbox-projects/api-boot-admin
界面一览
登录界面
演示模块
使用环境
由于前端采用的是vue-element-admin
集成解决方案,所以本地如果想要使用需要有如下的环境支持:
- NodeJs 10.18.0
- Npm 6.13.4
接口架构组成
ApiBoot Admin
所使用的接口都是由admin-services
这个子模块进行提供,导入IDEA开发工具可直接使用XxxApplication
方式运行。
admin-services
是一个完善的基础接口服务项目,内部包含了在构建接口服务项目时大多数场景能用到的配置、公共类、枚举、统一请求、统一响应、数据验证等。
- SpringBoot Profiles(多环境激活)
- ControllerAdvice(统一控制器异常捕捉通知)
- MapStruct(实体实例转换)
- ApiBoot Security(组件化快速集成Spring Security)
- ApiBoot OAuth2(组件化快速集成OAuth2)
- ApiBoot MyBatis Enhance(基于MyBatis的增强ORM)
- ApiBoot MyBatis Enhance Codegen(自动生成实体的Maven Plugin)
- ApiBoot MyBatis Pageable(自动化分页组件,提供给ElementUI内Table使用)
- ApiBoot Logging(分布式链路日志)
- ApiBoot Swagger(自动生成接口文档)
- 接口Api基础类
- 业务Service基础类
日志服务
ApiBoot Admin
内名为admin-log-server
的子模块项目,该项目主要是用于接收admin-services
所产生的链路请求日志,然后进行保存到数据库中,内部通过ApiBoot Logging Admin
实现。
只需要添加
@EnableLoggingAdmin
一个注解在启动类上就可以实现链路日志的接收以及自动化保存,是不是简单的令人发指?
通过添加spring-boot-starter-security
来保证日志上报的安全性,上报时通过配置Basic User
基础认证实现。
接口文档
ApiBoot Admin
内部通过集成ApiBoot Swagger
来实现接口文档的自动生成,在接口Api类内的方法上简单的配置Swagger2
所提供的注解就可以实现文档的自动生成,支持在线调试,还支持设置OAuth2
所生成的请求令牌调试接口。
作者个人 博客 使用开源框架 ApiBoot 助你成为Api接口服务架构师