1 Star 0 Fork 420

reno-day / api-boot

forked from minbox-projects / api-boot 
Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README

ApiBoot

Maven Central License

ApiBoot是一款基于SpringBoot1.xSpringBoot2.x的接口服务集成基础框架,内部提供了框架的封装集成,让接口开发者完成开箱即用,不再为搭建接口框架而犯愁,从而极大的提高开发效率。 通过在我的SpringBoot系列教程中得到的学习者的反馈,才决定来封装一套对应我文章的基础框架,ApiBoot内的每一个框架的具体讲解都在文章内进行了详细说明,如果有不明白的可以通过如下途径访问我的文章:

主要功能

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

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

组件

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

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

怎么使用?

添加版本依赖

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

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.minbox.framework</groupId>
      <artifactId>api-boot-dependencies</artifactId>
      <version>2.0.5.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每一次发版都会有相应的更新日志,点击访问更新日志wiki

版本管理规范

项目的版本号格式为 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

钉钉群

项目结构

. 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-datasource-switch
│   ├── api-boot-sample-security-oauth-jwt
│   ├── api-boot-sample-quartz    
│   └── api-boot-sample-swagger
└── tools

开源许可

ApiBoot采用Apache2开源许可。

Empty file

About

ApiBoot是一款基于SpringBoot1.x,2.x的接口服务集成基础框架, 内部提供了框架的封装集成、使用扩展、自动化完成配置,让接口开发者可以选着性完成开箱即用, 不再为搭建接口框架而犯愁,从而极大的提高开发效率。 expand collapse
Java
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
Java
1
https://gitee.com/reno-day/api-boot.git
git@gitee.com:reno-day/api-boot.git
reno-day
api-boot
api-boot
master

Search