这个项目是一个基于 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-elasticsearchspring-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