Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >ApiBoot:《SpringBoot》整合组件接口服务框架落地解决方案

ApiBoot:《SpringBoot》整合组件接口服务框架落地解决方案

原创
作者头像
恒宇少年
发布于 2019-03-22 07:40:42
发布于 2019-03-22 07:40:42
1.1K0
举报

ApiBoot

ApiBoot是一款基于SpringBoot2.x的接口服务集成基础框架,内部提供了框架的封装集成,让接口开发者完成开箱即用,不再为搭建接口框架而犯愁,从而极大的提高开发效率。

通过在我的SpringBoot系列教程中得到的学习者的反馈,才决定来封装一套对应我文章的基础框架,ApiBoot内的每一个框架的具体讲解都在文章内进行了详细说明,如果有不明白的可以通过如下途径访问我的文章:

主要功能

  • 服务资源安全 :通过整合SpringSecurity + Oauth2来完成接口服务的安全性,安全拦截路径内的请求必须携带请求令牌才可以访问到资源内容,资源内容可配置指定身份、权限访问。
  • 服务授权认证中心:服务授权以及认证是由Oauth2来担任,通过password授权模式获取请求令牌后访问资源服务,一个配置即可开启Jwt格式化AccessToken
  • 文档自动生成:通过集成Swagger2来完成文档的侵入式生成,侵入式文档后期会被替代,ApiBoot Security Oauth已默认排除swagger2相关的资源路径。
  • 返回JSON格式化:使用阿里巴巴的FastJson来完成返回Json字符串的格式化,自动扫描装载自定义的ValueFilter实现类,用于自定义返回格式化。
  • 数据库ORM框架mybatis-enhance是一款由我开源的数据库持久化框架,基于mybatis进行封装编写,可以完成动态查询数据,语法与SQL语法几乎一致,内置常用方法提供直接调用,支持方法命名规则查询,一个接口方法就可以自动完成查询,不再编写SQL语句。
  • 自动分页插件mybatis-pageable是一款由我开源的自动化分页插件,直接摆脱编写分页代码,仅仅需要传递的分页参数就可以自动进行查询,目前支持主流的12种数据库。
  • 代码生成插件code-builder是一款由我开源的代码生成插件,直接摆脱实体类的生成,支持自定义freemarker模板来完成自定义生成类文件,比如:ServiceControllerMapper等。
  • 七牛云资源处理:集成七牛云提供的SDK来完成文件的上传、下载等方法实现,开箱即用。
  • 阿里云OSS资源处理:集成阿里云OSS提供的SDK来完成文件的上传、下载等方法实现,开箱即用。
  • 阿里云短信:集成阿里云提供的SMS服务,简单配置即可完成短信发送,覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

更多功能请参考 更多功能列表

组件

  • Spring Security:Spring提供的安全框架,Spring家族式的设计,无缝整合SpringBoot
  • OAuth2OAuth是一个网络授权的标准。
  • JWTJSON Web Token是目前流行的跨域认证解决方案,用于格式化OAuth2生成的Token。
  • Swagger2:Swagger是一款API文档生成工具,自动扫描代码进行生成可运行测试的文档。
  • Mybatis EnhanceEnhance是对于原生的MyBatis的增强编写,不影响任何原生的使用,使用后完全替代mybatis-coremybatis-spring以及mybatis-spring-boot-starter,可以使用SpringBoot配置文件的形式进行配置相关的内容,尽可能强大的方便快速的集成MyBatis
  • Mybatis PageableMyBatis-Pageable是一款自动化分页的插件,基于MyBatis内部的插件Interceptor拦截器编写完成,拦截Executor.query的两个重载方法计算出分页的信息以及根据配置的数据库Dialect自动执行不同的查询语句完成总数量的统计。
  • Code Buildercode-builder是一款代码生成maven mojo插件,通过简单的配置就可以完成数据库内Table转换Entity或者其他实体类,想怎么生成完全根据你的个人业务逻辑,code-builder尽可能的完善的提供数据库内的一些定义的信息,让你更方便更灵活的来生成Java文件。

更多组件请参考更多集成组件

怎么使用?

添加版本依赖

在使用ApiBoot时需要再pom.xml文件内的dependencyManagement标签内添加如下配置:

代码语言:txt
AI代码解释
复制
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.minbox.framework</groupId>
      <artifactId>api-boot-dependencies</artifactId>
      <version>1.0.1.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

由于ApiBoot内后期规划集成的内容比较多,所以根据了SpringBoot的版本规划来进行了管理维护,这样在添加使用ApiBoot的依赖时就不再需要添加版本号,统一交由api-boot-dependencies进行管理。

注意:该版本默认添加了spring-boot-dependencies依赖。

使用Demo

ApiBoot会为每一个依赖提供一个演示代码集成子项目,都在api-boot-samples项目下,为了更好地解释ApiBoot的每一个依赖功能,恒宇少年会在每一个sample下添加当前项目的readme进行详细介绍。

Demo列表:

版本管理规范

项目的版本号格式为 x.x.x 的形式,其中 x 的数值类型为数字,从 0 开始取值,且不限于 0~9 这个范围。

  • SpringBoot1.x版本对应ApiBoot版本1.x.x
  • SpringBoot2.x版本对应ApiBoot版本2.x.x

集成新的第三方框架为小版本更新,对应修改第三位版本数值,如:2.0.1 -> 2.0.2

开源交流

社区交流

恒宇少年邮件

jnyuqy@gmail.com

恒宇少年微信

yuqiyu999

项目结构

代码语言:txt
AI代码解释
复制
. api-boot
├── api-boot-projects
│   ├── api-boot-autoconfigure
│   ├── api-boot-common
│   ├── api-boot-dependencies
│   ├── api-boot-parent
│   └── api-boot-starters
├── api-boot-samples
│   ├── api-boot-sample-alibaba-oss
│   ├── api-boot-sample-alibaba-sms
│   ├── api-boot-sample-http-converter
│   ├── api-boot-sample-security-oauth-jwt
│   └── api-boot-sample-swagger
└── tools

ApiBoot集成框架相关的代码实现都在org.minbox.framework.api.boot.framework目录下,如果你需要编写自己的业务尽可能的在framework的同级目录创建package来进行编写,ApiBoot默认扫描org.minbox.framework.api.boot目录下的所有类。

开源许可

ApiBoot采用Apache2开源许可。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ApiBoot:《SpringBoot》整合组件接口服务框架落地解决方案
ApiBoot是一款基础的接口服务框架的整合,开箱即用,对于接口服务的开发者而言可以很大的提高开发效率,之前在SpringBoot系列文章内也有很多同学让我出一个整合的示例,这个也可以当做结合我编写的文章的示例来看,每个版本的迭代都会把之前文章的内容加入进去,当然也会有很多的扩展,让使用者运用自如。
恒宇少年
2019/03/19
5030
接口服务落地解决方案ApiBoot 2.1.6/2.2.1.RELEASE版本发布
ApiBoot是接口服务的落地解决方案,提供了一系列开箱即用的组件,通过封装来简化主流第三方框架的集成,从而提高开发者开发效率、学习成本、降低入门门槛,真正的实现开箱即用!!!
恒宇少年
2019/12/19
4070
OAuth2使用Redis来存储客户端信息以及AccessToken
使用Redis来存储OAuth2相关的客户端信息以及生成的AccessToken是一个不错的选择,Redis与生俱来的的高效率、集群部署是比较出色的功能,如果用来作为服务认证中心的数据存储,可以大大的提高响应效率。
恒宇少年
2019/12/19
2.6K0
ApiBoot 官网发布 - 为接口服务而生
ApiBoot是一款基于SpringBoot1.x,SpringBoot2.x的接口服务集成基础框架,内部提供了框架的封装集成、使用扩展、自动化配置等,让接口开发者可以选着性完成开箱即用,不再为搭建接口框架而犯愁,从而极大的提高开发效率。
恒宇少年
2019/06/05
9000
ApiBoot 2.0.8.RELEASE 版本发布
ApiBoot是一款基于SpringBoot1.x,SpringBoot2.x的接口服务集成基础框架,内部提供了框架的封装集成、使用扩展、自动化配置等,让接口开发者可以选着性完成开箱即用,不再为搭建接口框架而犯愁,从而极大的提高开发效率。
恒宇少年
2019/05/29
7220
Api组件化解决方案:ApiBoot 2.1.0.RELEASE发布
ApiBoot为接口服务而生,基于SpringBoot完成扩展、自动化配置,通过封装一系列Starter来让调用者快速集成组件,降低学习、使用门槛,提高开发效率。
恒宇少年
2019/07/01
5080
ApiBoot发布2.1.4-RC1版本,修复无法拉取jar到本地问题
ApiBoot为接口服务而生,基于SpringBoot完成扩展、自动化配置,通过封装一系列Starter来让调用者快速集成组件,降低学习、使用门槛,提高开发效率。
恒宇少年
2019/08/20
4880
ApiBoot 2.1.3.RELEASE发布,支持Logging Admin 界面管理
ApiBoot为接口服务而生,基于SpringBoot完成扩展、自动化配置,通过封装一系列Starter来让调用者快速集成组件,降低学习、使用门槛,提高开发效率。
恒宇少年
2019/08/16
5030
ApiBoot 2.1.3.RELEASE发布,支持Logging Admin 界面管理
ApiBoot 2.0.7.RELEASE 版本发布
ApiBoot是一款基于SpringBoot1.x,SpringBoot2.x的接口服务集成基础框架,内部提供了框架的封装集成、使用扩展、自动化配置等,让接口开发者可以选着性完成开箱即用,不再为搭建接口框架而犯愁,从而极大的提高开发效率。
恒宇少年
2019/05/15
4630
ApiBoot 2.0.5.RELEASE 版本发布
GitHub Wiki:https://github.com/hengboy/api-boot/wiki 码云 Wiki:https://gitee.com/hengboy/api-boot/wikis
恒宇少年
2019/05/08
4240
使用ApiBoot Logging进行统一管理请求日志
ApiBoot Logging通过集成minbox-logging来进行管理每一次请求的日志信息,包含头信息、参数、主体内容、路径、发生的服务器相关信息等,根据接口的响应状态还可以记录响应的头信息、响应的内容以及发生异常时的堆栈信息。
恒宇少年
2019/10/18
6610
使用ApiBoot Logging进行统一管理请求日志
基于ApiBoot的前后分离演示脚手架诞生了~
ApiBoot发布到目前为止已经9个月的时光了,在这段时间内有过热泪迎面、有过沮丧、也有过无从下手的感觉,坚持开源是我作为程序员的愿景,尽我所能,继续坚持!!!
恒宇少年
2020/01/15
3890
基于ApiBoot的前后分离演示脚手架诞生了~
Api架构奥义:ApiBoot实现零代码整合Spring Security & OAuth2
接口服务的安全性一直是程序员比较注重的一个问题,成熟的安全框架也比较多,其中一个组合就是Spring Security与OAuth2的整合,在ApiBoot内通过代码的封装、自动化配置实现了自动化整合这两大安全框架。
恒宇少年
2019/11/13
6570
使用Swagger2作为文档来描述你的接口信息
接口文档在前后分离的项目中是必不可少的一部分,文档的编写一直以来都是一件头疼的事情,写程序不写注释、不写文档这几乎是程序员的通病,Swagger2的产生给广大的程序员们带来了曙光,只需要在接口类或者接口的方法上添加注解配置,就可以实现文档效果,除了可以应用到单体应用,在微服务架构中也是可以使用的,只需要整合zuul就可以实现各个服务的文档整合。
恒宇少年
2019/12/20
5190
使用Swagger2作为文档来描述你的接口信息
ApiBoot v2.3.x分支第一个版本发布,重构源码架构设计
ApiBoot 是接口服务的落地解决方案,提供了一系列开箱即用的组件,通过封装来简化主流第三方框架的集成,从而提高开发者开发效率、学习成本、降低入门门槛,真正的实现开箱即用!!!
恒宇少年
2020/07/23
3480
ApiBoot v2.3.x分支第一个版本发布,重构源码架构设计
ApiBoot - ApiBoot Swagger 使用文档
ApiBoot是一款基于SpringBoot1.x,2.x的接口服务集成基础框架, 内部提供了框架的封装集成、使用扩展、自动化完成配置,让接口开发者可以选着性完成开箱即用, 不再为搭建接口框架而犯愁,从而极大的提高开发效率。
恒宇少年
2019/04/09
4980
SpringCloud核心技术 | 初识SpringCloud微服务解决方案
最近这几个月文章更新处于停滞状态,因为公司的事情比较多,公司系统一直处于高速的迭代更新阶段, 尽管如此,我这段时间也一直在整理接下来要更新的文章大纲以及知识点的梳理,希望在后续的文章更新中能给这段时间关注我的朋友以及将要关注我的朋友帮助。
恒宇少年
2018/09/20
5930
SpringCloud核心技术 | 初识SpringCloud微服务解决方案
Swagger2怎么整合OAuth2来在线调试接口?
Swagger2作为侵入式文档中比较出色的一员,支持接口认证的在线调试肯定是不在话下的,当我们在调用OAuth2所保护的接口时,需要将有效的AccessToken作为请求Header内Authorization的值时,我们才拥有了访问权限,那么我们在使用Swagger在线调试时该设置AccessToken的值呢? 本文所需ApiBoot相关链接:
恒宇少年
2019/12/26
1.2K0
Swagger2怎么整合OAuth2来在线调试接口?
SpringBoot核心技术:Actuator自定义节点路径 & 监控服务自定义配置
路径都是一样的,很容易就会暴露出去,导致信息泄露,发生一些无法估计的事情,如果我们可以自定义节点的映射路径或者自定义监控服务的管理信息,这样就不会轻易的暴露出去,Actuator已经为了们提供了对应的方法来解决这个问题,下面我们来看下吧。
恒宇少年
2018/11/29
1.1K0
ApiBoot Logging使用RestTemplate透传链路信息
在上一篇文章【ApiBoot Logging使用SpringCloud Openfeign透传链路信息】中我们详细的讲解了ApiBoot Logging整合SpringCloud通过Openfeign进行透传链路信息,包括traceId(链路编号)、parentSpanId(上级单元编号)等信息。 ApiBoot Logging不仅仅可以使用Openfeign传递链路信息,还支持RestTemplate方式,本篇文章来详细的讲解下具体的使用方式。
恒宇少年
2019/11/11
5300
推荐阅读
相关推荐
ApiBoot:《SpringBoot》整合组件接口服务框架落地解决方案
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档