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