这个项目是一个基于 Spring Boot 2.x
的综合性 仓库
。
项目中提供了各种示例,以简单、快捷、精炼为目标,目的是帮助大家快速掌握 Spring Boot 2.x
的使用以及集成的各类中间件的使用
- 模块名格式均为
spring-boot-xxx
的形式,下面的模块名称省略前缀spring-boot-
,方便大家查看 - 模块占用的端口从
10001
开始依次递增,部分模块的服务占用多个端口(详情请查看配置文件)
-
helloworld 集成
SpringBoot 2.x
,国际惯例HelloWorld
;内嵌容器、构建war包;自定义Properties
属性绑定、配置自定义刷新、全局异常处理等 -
docker 集成
docker
插件;绑定maven
生命周期相关的命令到docker
命令 -
runner 使用
CommandLineRunner
以及ApplicationRunner
;增加PostConstruct注解的使用 -
github 使用
github api v3
简易示例;推荐个iPhone
的客户端(付费)PPHub
;安卓推荐(免费)OpenHub
-
redis 集成
redis
集群/哨兵;redisTemplate
的常用API
-
elasticsearch 集成
elasticsearch
的示例;es
的rest API
-
swagger2 集成
swagger2
及常用swagger
注解 -
mybatisplus 集成
mybatisPlus
;使用其提供的增强CRUD
(包括常用的批量插入、删除、统计、聚合查询、模糊查询等);高级代码生成器 beta版(可自由添加数据库连接配置、选择连接后查询其所有表、最后选择要生成的表);SQL注入器;性能分析插件;动态数据源;多租户SQL解析器;动态表名SQL解析器 -
rabbitmq 集成
RabbitMQ
集群、以及发送MQ
消息,诸如:发送字符串、对象等;常见六种模式:HelloWorld(Simple)、Work(竞争)、FanOut(发布-订阅)、路由模式(完整的匹配,可参考Direct)、Topic(主题模式)、RPC模式(不常用);死信队列(DLX) -
jpa 集成
JPA
;基础CURD
示例;自定义主键策略 -
actuator 集成
Actuator
;自定义Endpoint;访问端点鉴权;端点跨域配置;常见断点的作用、见actuator.http
-
admin 集成
Admin
;yml
中会说么为什么关于用户名/密码
要那样配置,很多人到了2.X
就被这个搞昏了 ;这个版本没有涉及Discovery
的内容;访问服务端点授权;服务各指标监控(details、metrics、env、beans、configuration properties、task、logger、jvm、web、caches等) -
admin-discovery 集成
Admin
,功能同上,切换为通过注册中心
去拉取服务实例信息 -
java8 精炼版
Java 8
指南:Default Method
、Lambda
、Functional Interfaces(Predicates、Functions、Suppliers、Consumers、Comparators)
、Optinals
、Stream(Filter、Sorted、Map、Match、Count、Reduce)
、DateAPI
、Parallel Streams
、Maps
等等 -
scheduler 集成
SpringBoot
定时任务,基于anntation
的入门版本 -
mail 集成
mail
邮件服务,提供:文本、HTML、附件、内嵌资源、模板邮件的发送与测试 -
jdbc 集成
jdbcTemplate
、提供简单示例;集成多数据源见参考文章 -
mongodb 集成
MongoDB
、提供mongodb
使用MongoRepository
操作mongodb
的示例、集成mongodbplus
提供更多的配置项 -
flyway 集成
Flyway
、提供flyway
的示例,实现数据库版本的管理 -
transaction 集成 事务管理(jdbc/jpa),使用
@Transactional
即可进行日常开发 -
async 集成
Async
,通过线程池
实现异步调用、实现优雅关闭、通过Future
获取异步执行结果;如何定义超时等 -
logback 集成 日志组件
logback
-
redisson 集成
redisson
库,使用redis
官方指定Java
版分布式锁redisson
,与SpringBoot
集成的八种方式 -
git4clone 集成
gitlab api
, 利用多线程技术
帮助用户实现快速批量下载gitlab
上的项目,只需要进行简单的配置修改即可使用 -
aop 集成
aop
,提供了传统使用切面注解的写法;提供了使用注解的写法,并通过异步事件驱动的方式(使用feign
模拟远程服务请求)将日志消息入库 -
qrcode 集成
zxing
,提供了快速生成二维码、带文字的二维码、带logo的二维码、批量生产二维码等 -
jaxb 集成
jaxb
,提供对象转XML、XML转对象的功能(包含简单对象、List对象、Map对象、动态XML等) -
log4j 集成
log4j
-
skywalking 集成
skywalking
,实现链路监控 -
openfeign 集成
openfeign
,实现文件上传、打印feign日志、调用远程URL提供的服务 -
fastdfs 集成
fastdfs
,实现文件上传、下载 -
websocket 集成
websocket
,实现简单聊天室功能
-
validation 使用
JSR303
标准(Bean Validation 1.0 (JSR 303))、hibernate-validation
,实现数据验证 -
oss 集成 阿里云、腾讯云、七牛云,实现文件上传、下载、删除功能
-
elk 集成 Logback与RabbitMQ,配合logstash将数据采集到ES并在kibana上展示
spring-boot-common
:一些常用的工具类、常量等spring-boot-custom-starter
:自定义starter
spring-boot-elasticsearch
spring-boot-redis
- spring-boot-sharding-jdbc
- spring-boot-sharding-jdbc-masterslave
- spring-boot-zuul-upload
- spring-boot-validation(jsr303 and hibernate-validation)
- spring-boot-security
- spring-boot-security-cas
- spring-boot-oauth2
- spring-boot-image
- spring-boot-retry
- spring-boot-disconf
- spring-boot-rocketmq
- spring-boot-mockito
- spring-boot-ignite
- spring-boot-elastic-job
- spring-boot-influxdb
- spring-boot-prometheus-grafana
- spring-boot-elk-filebeat
- spring-boot-mvc
- spring-boot-dubbo
- spring-boot-benchmark(container、api-gatway、mvcAndWbflux)
- spring-boot-ratelimit
- spring-boot-xxx