内容简介:ApiBoot是接口服务的落地解决方案,提供了一系列开箱即用的组件,通过封装来简化主流第三方框架的集成,从而提高开发者开发效率、学习成本、降低入门门槛,真正的实现开箱即用!!! 对SpringBoot简单了解的开发者...
ApiBoot是接口服务的落地解决方案,提供了一系列开箱即用的组件,通过封装来简化主流第三方框架的集成,从而提高开发者开发效率、学习成本、降低入门门槛,真正的实现开箱即用!!!
对SpringBoot简单了解的开发者就可以编写安全稳定的接口服务,可为移动端、网页端等多个端点提供丰富的安全接口。
ApiBoot依赖于SpringBoot,可以使用ApiBoot构建独立的 Java 应用程序。
愿景:
-
为Java开发者提供低门槛第三方框架集成解决方案,让复杂的框架集成使用的门槛更低。
-
开箱即用,内部封装了主流框架,只需添加依赖、简单配置即可使用。
-
各个组件可独立使用,不再冗余你的应用程序。
-
可简单快速的构建安全的restful资源接口服务。
-
可用于构建SpringCloud微服务服务实例。
-
为????????开源做贡献,希望开源框架可以帮助更多的开发者。
2.2.0.RELEASE更新日志
-
支持SpringBoot2.2.0以上版本分支
-
升级SpringCloud版本为Hoxton.RELEASE
-
升级druid版本为1.1.21
-
升级spring-security-oauth2版本为2.4.0.RELEASE
-
升级spring-security-jwt版本为1.1.0.RELEASE
-
修改ApiBootDefaultAuthenticationEntryPoint返回json字符串的方式为fastJson
-
修改ApiBootDefaultAccessDeniedHandler返回json字符串方式为fastJson
文档 & 源码
ApiBoot 官网文档:http://apiboot.minbox.io
源码地址:https://gitee.com/minbox-projects/api-boot
安装 & 入门
组件的使用请查看官方参考文档,开始使用请访问第一个ApiBoot应用程序
如果你是使用Maven来构建项目,你需要添加ApiBoot的版本依赖到你的pom.xml文件内,如下所示:
<dependencyManagement> <dependencies> <!--ApiBoot版本依赖--> <dependency> <groupId>org.minbox.framework</groupId> <artifactId>api-boot-dependencies</artifactId> <version>${lastVersion}</version> <scope>import</scope> <type>pom</type> </dependency> </dependencies> </dependencyManagement>
<dependencies> <!--ApiBoot MinBox Logging--> <dependency> <groupId>org.minbox.framework</groupId> <artifactId>api-boot-starter-logging</artifactId> </dependency> </dependencies>
-
本地需要配置Maven环境变量,建议使用最新版
-
本地需要配置JDK环境变量,JDK1.8下载地址
-
本地需要配置Git环境变量,Git下载地址
# 下载master分支源码到本地 ➜ git clone https://gitee.com/minbox-projects/api-boot.git # 进入api-boot源码根目录 ➜ cd api-boot # 执行安装 ➜ mvn clean install
ApiBoot采用Apache2开源许可进行编写。
License
请访问作者博客程序员 - 恒宇少年获取ApiBoot、MinBox开源组织内开源框架的最新的使用指南。
使用指南
ApiBoot提供了每一个组件的使用示例,在源码api-boot-samples目录下根据组件名归类。
示例
集成阿里云提供的Mail服务,简单配置后,通过ApiBoot提供的封装类几行代码就可以完成邮件发送。
阿里云邮件组件
集成阿里云提供的SMS服务,简单配置即可完成短信发送,覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
阿里云短信组件
集成阿里云OSS提供的SDK来完成文件的上传、下载等方法实现,开箱即用。
阿里云OSS组件
限流配置秒级QPS访问量。
ApiBoot针对单应用、分布式集群应用分别提供了一种限流的方式,针对单应用提供了Google的令牌桶方式限流,而针对服务集群环境提供了Redis Lua方式。
限流组件
支持主流的12种数据库。
ApiBoot针对Mybatis持久化框架的使用者提供了自动化分页的插件mybatis-pageable,这是一款基于Mybatis Plugin实现的插件,根据传递的分页参数可以自动查询出分页信息,如:总页数、每页条数、当前页码、是否存在上一页、下一页等。
自动分页组件
ApiBoot针对多数据源切换的场景提供了自动化切换的方式,内部提供了两种数据源类型的配置实现,分别是:Druid、HikariCP,通过在类、方法上配置注解的方式切面自动切换为配置数据源,如未配置则使用默认的数据源。
多数据源组件
ApiBoot为mybatis-enhance提供了专门定制代码生成插件,可为数据库表对应生成数据实体生成、动态查询实体,mybatis-enhance-codegen是一款Maven Plugin,配置数据库链接信息后可根据配置过滤指定的表、全部表、指定前缀的表进行生成。
代码生成组件
ApiBoot通过封装Mybatis提供了一款吸取JPA、Mybatis、QueryDSL等主流ORM框架的优点整合框架mybatis-enhance,内部提供了常用CRUD方法,无需编写一行 SQL 就可以完成对数据的持久化操作,提供方法命名规则查询、动态查询等新特性。
ORM组件(数据库持久化组件)
通过集成
Swagger2
来完成文档的侵入式生成,侵入式文档后期会被替代,ApiBoot Security Oauth
已默认排除swagger2
相关的资源路径(如果自定义集成了OAuth2或者SpringSecurity需要手动排除Swagger资源路径)。接口文档组件
可以直接配置使用JWT格式化OAuth2生成的Token.
内部通过整合SpringSecurity + OAuth2两大常用资源安全、认证授权框架来保证接口服务的安全性,内存方式只需要添加几行配置就可以完成整合,ApiBoot针对SpringSecurity提供了两种查询用户的方式:memory(内存)、jdbc(数据库)。而针对OAuth2则提供了三种方式存储生成后的Token以及Client信息:memory、jdbc、 redis 等。
安全组件
内部通过集成整合minbox-logging开源框架,提供零侵入式分布式链路日志分析框架的使用,可应用到SpringCloud微服务应用内,提供Admin端点进行采集日志、分析日志、日志告警通知、服务性能分析等。通过Admin Ui可查看实时链路日志信息、在线业务服务列表。
链路日志组件
ApiBoot内部提供了多个组件,下面简单的介绍组件的用途:
组件
ApiBoot正式版本都会发布到Maven Center,如果你想使用源码最新版本的ApiBoot(版本并未发布),可以直接通过源码的方式进行构建安装到本地使用,前提条件如下所示:
源码方式构建
-
2.1.x
对应SpringBoot的2.1.0
及以上版本。 -
2.2.x
对应SpringBoot的2.2.0
及以上版本。
ApiBoot由于需要支持SpringBoot的不同分支的代码(SpringBoot版本相互不兼容的问题导致),因此也对应创建的分支。
分支
-
在提交问题之前,请搜索issues内是否已经有人提出过该问题。
-
如果您即将要提出的问题不存在,请创建issue。
-
请在提出您的问题时提供尽可能有关ApiBoot可能多的信息,比如:ApiBoot的版本、JDK、使用组件等
-
如果提问题时需要粘贴代码,请尽量使用markdown语法```转义符。
每个人可能提出的问题不同,不过也会有一些相同的问题,如果您要提出问题,请遵循以下建议:
提交问题建议
-
查看官方参考文档,使用的每一个细节都会在文档中进行体现。
-
在https://gitee.com/minbox-projects/api-boot/issues提交你遇到的使用问题。
如果在使用ApiBoot的过程中遇到了问题,你可以通过以下途径获取帮助!
获取帮助
添加完组件我们就可以根据官方参考文档找到对应组件的文档进行配置使用了。
版本依赖添加完成后,我们接下来就可以进行添加项目内所需要的ApiBoot组件,下面是使用分布式链路组件minbox-logging示例:
注意:lastVersion需要替换为最新的ApiBoot版本,请访问版本依赖 - 2.获取最新的ApiBoot依赖查看。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Pro JavaScript Design Patterns
Dustin Diaz、Ross Harmes / Apress / 2007-12-16 / USD 44.99
As a web developer, you’ll already know that JavaScript™ is a powerful language, allowing you to add an impressive array of dynamic functionality to otherwise static web sites. But there is more power......一起来看看 《Pro JavaScript Design Patterns》 这本书的介绍吧!