今天给大家介绍一个 SpringBoot
集成各种场景的项目,可以用来学习,也可以开箱即用,无需重复造轮子!
项目简介
spring boot demo
是一个用来深度学习并实战 spring boot
的项目,目前总共包含 66 个集成 demo
,已经完成 55 个。 目前已经集成功能:
-
actuator
:监控 -
admin
:可视化监控 -
logback
:日志 -
aopLog
:通过AOP
记录Web
请求日志 -
统一异常处理:
json
级别和页面级别 -
freemarker
:模板引擎 -
thymeleaf
:模板引擎 -
Beetl
:模板引擎 -
Enjoy
:模板引擎 -
JdbcTemplate
:通用JDBC
操作数据库 -
JPA
:强大的ORM
框架 -
Mybatis
:强大的ORM
框架 -
通用
Mapper
:快速操作Mybatis
-
PageHelper
:通用的Mybatis
分页插件 -
Mybatis-plus
:快速操作Mybatis
-
BeetlSQL
:强大的ORM
框架 -
upload
:本地文件上传和七牛云文件上传 -
Redis
:缓存 -
ehcache
:缓存 -
email
:发送各种类型邮件 -
task
:基础定时任务 -
quartz
:动态管理定时任务 -
xxl-job
:分布式定时任务 -
swagger
:API
接口管理测试 -
security
:基于 RBAC` 的动态权限认证 -
SpringSession
:Session
共享 -
Zookeeper
:结合AOP
实现分布式锁 -
RabbitMQ
:消息队列 -
Kafka
:消息队列 -
websocket
:服务端推送监控服务器运行信息 -
socket.io
:聊天室 -
ureport2
:中国式报表 -
打包成
War
文件 -
集成
ElasticSearch
:基本操作和高级查询 -
Async:异步任务
-
集成
Dubbo
:采用官方的starter
-
MongoDB
:文档数据库 -
neo4j
:图数据库 -
Docker
:容器化 -
JPA
多数据源 -
Mybatis
多数据源 -
代码生成器
-
GrayLog
:日志收集 -
JustAuth
:第三方登录 -
LDAP
:增删改查 -
动态添加/切换数据源
-
单机限流:
AOP
+Guava RateLimiter
-
分布式限流:
AOP
+Redis
+Lua
-
ElasticSearch 7.x
:使用官方Rest High Level Client
-
HTTPS
-
Flyway
:数据库初始化 -
UReport2
:中国式复杂报表
项目地址:
arduino
https://github.com/xkcoding/spring-boot-demo
运行使用
开发环境
-
JDK 1.8 +
-
Maven 3.5 +
-
IntelliJ IDEA ULTIMATE 2018.2 + (注意:务必使用 IDEA 开发,同时保证安装 lombok 插件)
-
Mysql 5.7 + (尽量保证使用 5.7 版本以上,因为 5.7 版本加了一些新特性,同时不向下兼容。项目会尽量避免这种不兼容的地方,但还是建议尽量保证 5.7 版本以上)
代码导入
1.使用 git
克隆代码:
bash
git clone https://github.com/xkcoding/spring-boot-demo.git
- 使用
IDEA
打开clone
下来的项目 3.找到各个Module
的Application
类就可以运行各个demo
注意:
每个
demo
均有详细的README
,运行demo
之前记得先看看有些
demo
需要事先初始化数据库数据的
模块代码介绍
Module 名称
Module 介绍
demo-helloworld
spring-boot 的一个 helloworld
demo-properties
spring-boot 读取配置文件中的内容
demo-actuator
spring-boot 集成 spring-boot-starter-actuator 用于监控 spring-boot 的启动和运行状态
demo-admin-client
spring-boot 集成 spring-boot-admin 来可视化的监控 spring-boot 程序的运行状态,可以与 actuator 互相搭配使用,客户端示例
demo-admin-server
spring-boot 集成 spring-boot-admin 来可视化的监控 spring-boot 程序的运行状态,可以与 actuator 互相搭配使用,服务端示例
demo-logback
spring-boot 集成 logback 日志
demo-log-aop
spring-boot 使用 AOP 切面的方式记录 web 请求日志
demo-exception-handler
spring-boot 统一异常处理,包括2种,第一种返回统一的 json 格式,第二种统一跳转到异常页面
demo-template-freemarker
spring-boot 集成 Freemarker 模板引擎
demo-template-thymeleaf
spring-boot 集成 Thymeleaf 模板引擎
demo-template-beetl
spring-boot 集成 Beetl 模板引擎
demo-template-enjoy
spring-boot 集成 Enjoy 模板引擎
demo-orm-jdbctemplate
spring-boot 集成 Jdbc Template 操作数据库,并简易封装通用 Dao 层
demo-orm-jpa
spring-boot 集成 spring-boot-starter-data-jpa 操作数据库
demo-orm-mybatis
spring-boot 集成原生mybatis,使用 mybatis-spring-boot-starter 集成
demo-orm-mybatis-mapper-page
spring-boot 集成通用Mapper和PageHelper,使用 mapper-spring-boot-starter 和 pagehelper-spring-boot-starter 集成
demo-orm-mybatis-plus
spring-boot 集成 mybatis-plus,使用 mybatis-plus-boot-starter 集成,集成 BaseMapper、BaseService、ActiveRecord 操作数据库
demo-orm-beetlsql
spring-boot 集成 beetl-sql,使用 beetl-framework-starter 集成
demo-upload
spring-boot 文件上传示例,包含本地文件上传以及七牛云文件上传
demo-cache-redis
spring-boot 整合 redis,操作redis中的数据,并使用redis缓存数据
demo-cache-ehcache
spring-boot 整合 ehcache,使用 ehcache 缓存数据
demo-email
spring-boot 整合 email,包括发送简单文本邮件、HTML邮件(包括模板HTML邮件)、附件邮件、静态资源邮件
demo-task
spring-boot 快速实现定时任务
demo-task-quartz
spring-boot 整合 quartz,并实现对定时任务的管理,包括新增定时任务,删除定时任务,暂停定时任务,恢复定时任务,修改定时任务启动时间,以及定时任务列表查询,提供前端页面
demo-task-xxl-job
spring-boot 整合xxl-job,并提供绕过 xxl-job-admin
对定时任务的管理的方法,包括定时任务列表,触发器列表,新增定时任务,删除定时任务,停止定时任务,启动定时任务,修改定时任务,手动触发定时任务
demo-swagger
spring-boot 集成原生的 swagger
用于统一管理、测试 API 接口
demo-swagger-beauty
spring-boot 集成第三方 swagger
swagger-bootstrap-ui 美化API文档样式,用于统一管理、测试 API 接口
demo-rbac-security
spring-boot 集成 spring security 完成基于RBAC权限模型的权限管理,支持自定义过滤请求,动态权限认证,使用 JWT 安全认证,支持在线人数统计,手动踢出用户等操作
demo-rbac-shiro
spring-boot 集成 shiro 实现权限管理 待完成
demo-session
spring-boot 集成 Spring Session 实现Session共享、重启程序Session不失效
demo-oauth
spring-boot 实现 oauth 服务器功能,实现授权码机制 待完成
demo-social
spring-boot 集成第三方登录,集成 justauth-spring-boot-starter
实现QQ登录、GitHub登录、微信登录、谷歌登录、微软登录、小米登录、企业微信登录。
demo-zookeeper
spring-boot 集成 Zookeeper 结合AOP实现分布式锁
demo-mq-rabbitmq
spring-boot 集成 RabbitMQ 实现基于直接队列模式、分列模式、主题模式、延迟队列的消息发送和接收
demo-mq-rocketmq
spring-boot 集成 RocketMQ,实现消息的发送和接收 待完成
demo-mq-kafka
spring-boot 集成 kafka,实现消息的发送和接收
demo-websocket
spring-boot 集成 websocket,后端主动推送前端服务器运行信息
demo-websocket-socketio
spring-boot 使用 netty-socketio 集成 websocket,实现一个简单的聊天室
demo-ureport2
spring-boot 集成 ureport2 实现复杂的自定义的中国式报表 待完成
demo-uflo
spring-boot 集成 uflo 快速实现轻量级流程引擎 待完成
demo-urule
spring-boot 集成 urule 快速实现规则引擎 待完成
demo-activiti
spring-boot 集成 activiti 7 流程引擎 待完成
demo-async
spring-boot 使用原生提供的异步任务支持,实现异步执行任务
demo-war
spring-boot 打成 war 包的配置
demo-elasticsearch
spring-boot 集成 ElasticSearch,集成 spring-boot-starter-data-elasticsearch
完成对 ElasticSearch 的高级使用技巧,包括创建索引、配置映射、删除索引、增删改查基本操作、复杂查询、高级查询、聚合查询等
demo-dubbo
spring-boot 集成 Dubbo,分别为公共模块 spring-boot-demo-dubbo-common
、服务提供方spring-boot-demo-dubbo-provider
、服务调用方spring-boot-demo-dubbo-consumer
demo-mongodb
spring-boot 集成 MongoDB,使用官方的 starter 实现增删改查
demo-neo4j
spring-boot 集成 Neo4j 图数据库,实现一个校园人物关系网的demo
demo-docker
spring-boot 容器化
demo-multi-datasource-jpa
spring-boot 使用JPA集成多数据源
demo-multi-datasource-mybatis
spring-boot 使用Mybatis集成多数据源,使用 Mybatis-Plus 提供的开源解决方案实现
demo-sharding-jdbc
spring-boot 使用 sharding-jdbc
实现分库分表,同时ORM采用 Mybatis-Plus
demo-tio
spring-boot 集成 tio 网络编程框架 待完成
demo-grpc
spring-boot 集成grpc,配置tls/ssl,参见ISSUE#5 待完成
demo-codegen
spring-boot 集成 velocity 模板技术实现的代码生成器,简化开发
demo-graylog
spring-boot 集成 graylog 实现日志统一收集
demo-sso
spring-boot 集成 SSO 单点登录,参见 ISSUE#12 待完成
demo-ldap
spring-boot 集成 LDAP,集成 spring-boot-starter-data-ldap
完成对 Ldap 的基本 CURD操作, 并给出以登录为实战的 API 示例,参见 ISSUE#23,感谢 @fxbin
demo-dynamic-datasource
spring-boot 动态添加数据源、动态切换数据源
demo-ratelimit-guava
spring-boot 使用 Guava RateLimiter 实现单机版限流,保护 API
demo-ratelimit-redis
spring-boot 使用 Redis + Lua 脚本实现分布式限流,保护 API
demo-https
spring-boot 集成 HTTPS
demo-elasticsearch-rest-high-level-client
spring boot 集成 ElasticSearch 7.x 版本,使用官方 Rest High Level Client 操作 ES 数据
demo-flyway
spring boot 集成 Flyway,项目启动时初始化数据库表结构,同时支持数据库脚本版本控制
demo-ureport2
spring boot 集成 Ureport2,实现中国式复杂报表设计