ApiBoot 是一款基于 SpringBoot2.x 的接口服务集成基础框架, 内部提供了框架的封装集成, 让接口开发者完成开箱即用, 不再为搭建接口框架而犯愁, 从而极大的提高开发效率.
通过在我的 SpringBoot 系列教程中得到的学习者的反馈, 才决定来封装一套对应我文章的基础框架, ApiBoot 内的每一个框架的具体讲解都在文章内进行了详细说明, 如果有不明白的可以通过如下途径访问我的文章:
源码码云地址: https://gitee.com/hengboy/api-boot
源码 GitHub 地址: https://github.com/hengboy/api-boot
我的博客 - 恒宇少年 De 成长之路 http://blog.yuqiyu.com/
我的简书
主要功能
服务资源安全 : 通过整合 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 模板来完成自定义生成类文件, 比如: Service,Controller,Mapper 等.
七牛云资源处理: 集成七牛云提供的 SDK 来完成文件的上传, 下载等方法实现, 开箱即用.
阿里云 OSS 资源处理: 集成阿里云 OSS 提供的 SDK 来完成文件的上传, 下载等方法实现, 开箱即用.
阿里云短信: 集成阿里云提供的 SMS 服务, 简单配置即可完成短信发送, 覆盖全球的短信服务, 友好, 高效, 智能的互联化通讯能力, 帮助企业迅速搭建客户触达通道.
更多功能请参考 更多功能列表 https://github.com/hengboy/api-boot/Integrated.md
组件
Spring Security:Spring 提供的安全框架, Spring 家族式的设计, 无缝整合 SpringBoot
OAuth2 https://oauth.net/2/ :OAuth 是一个网络授权的标准.
JWT https://jwt.io/ :JSON web Token 是目前流行的跨域认证解决方案, 用于格式化 OAuth2 生成的 Token.
Swagger2 https://swagger.io/ :Swagger 是一款 API 文档生成工具, 自动扫描代码进行生成可运行测试的文档.
Mybatis Enhance https://github.com/hengboy/mybatis-enhance :Enhance 是对于原生的 MyBatis 的增强编写, 不影响任何原生的使用, 使用后完全替代 mybatis-core,mybatis-spring 以及
mybatis-spring-boot-starter
, 可以使用 SpringBoot 配置文件的形式进行配置相关的内容, 尽可能强大的方便快速的集成 MyBatis.
Mybatis Pageable https://github.com/hengboy/mybatis-pageable :MyBatis-Pageable 是一款自动化分页的插件, 基于 MyBatis 内部的插件 Interceptor 拦截器编写完成, 拦截 Executor.query 的两个重载方法计算出分页的信息以及根据配置的数据库 Dialect 自动执行不同的查询语句完成总数量的统计.
Code Builder https://github.com/hengboy/code-builder :code-builder 是一款代码生成 maven mojo 插件, 通过简单的配置就可以完成数据库内 Table 转换 Entity 或者其他实体类, 想怎么生成完全根据你的个人业务逻辑, code-builder 尽可能的完善的提供数据库内的一些定义的信息, 让你更方便更灵活的来生成 Java 文件.
更多组件请参考更多集成组件 https://github.com/hengboy/api-boot/Integrated.md
怎么使用?
添加版本依赖
在使用 ApiBoot 时需要再 pom.xml 文件内的 dependencyManagement 标签内添加如下配置:
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.minbox.framework</groupId>
- <artifactId>API-boot-dependencies</artifactId>
- <version>0.1.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 列表:
- ApiBoot Security OAuth
- ApiBoot Swagger
- ApiBoot Http Converter
版本管理规范
项目的版本号格式为 x.x.x 的形式, 其中 x 的数值类型为数字, 从 0 开始取值, 且不限于 0~9 这个范围.
项目目前处于在集成第三方框架阶段, 第一位版本号统一使用 0, 如: 0.x.x.
第三方框架集成阶段, 版本升级如下所示:
小版本升级会增加第三位版本号的数值, 如: 0.1.0 的小版本升级为: 0.1.1.
大版本升级会增加第二位版本号的数值, 如: 0.1.0 的大版本升级为: 0.2.0.
开源交流
社区交流
恒宇少年邮件
mailto:jnyuqy@gmail.com
恒宇少年微信
yuqiyu999
目录概述
. framework
├── converter
├── enums
├── event
├── model
├── security
│ ├── delegate
│ ├── jdbc
│ ├── properties
│ └── userdetails
└── tools
ApiBoot 集成框架相关的代码实现都在 org.minbox.framework.API.boot.framework 目录下, 如果你需要编写自己的业务尽可能的在 framework 的同级目录创建 package 来进行编写, ApiBoot 默认扫描 org.minbox.framework.API.boot 目录下的所有类.
开源许可
ApiBoot 采用 Apache2 开源许可.
来源: http://www.jianshu.com/p/47628f857681