spring boot demo 是一个用来深度学习并实战 spring boot 的项目,目前总共包含 66 个集成demo,已经完成 55 个。

spring boot demo 是一个用来深度学习并实战 spring boot 的项目,目前总共包含 66 个集成demo,已经完成 55 个。

项目详情请见压缩包内的 HTML 文件。

项目简介

这是一个基于 Spring Boot 的综合示例项目,集中演示了常见企业级开发中会用到的大量技术组件,

   包括监控、日志、ORM、模板引擎、缓存、消息队列、定时任务、搜索引擎、分布式锁、限流、
   多数据源、第三方登录等内容,适合作为 Spring Boot 综合学习与实战参考。

在这个项目中,已经集成了 actuator 监控、可视化监控管理、logback 日志、基于 AOP 的 Web 请求日志记录、
   统一异常处理(支持返回 JSON 与错误页面)、多种模板引擎(Freemarker、Thymeleaf、Beetl、Enjoy)、
   多种数据访问方式(JdbcTemplate、JPA、MyBatis、通用 Mapper、PageHelper、MyBatis-Plus、BeetlSQL)、
   本地和云端文件上传、Redis 和 Ehcache 缓存、邮件发送、基础与动态定时任务(Spring Task、Quartz、XXL-Job)、
   Swagger 接口文档与测试、基于 RBAC 的 Spring Security 权限体系、Spring Session 会话共享、
   基于 Zookeeper 的分布式锁、RabbitMQ 与 Kafka 消息队列、WebSocket 与 Socket.io、UReport2 报表、
   ElasticSearch 与异步任务、Dubbo RPC、MongoDB、Neo4j、Docker 容器化、多数据源支持、代码生成器、
   GrayLog 日志收集、JustAuth 第三方登录、LDAP 操作、动态数据源切换、单机与分布式限流、
   ElasticSearch 7.x 官方客户端接入、HTTPS、Flyway 数据库初始化等。

分支说明

master 分支

master 分支基于 Spring Boot 2.1.0.RELEASE。
   各个模块的 parent 统一依赖根目录下的 pom.xml,用于集中管理依赖版本,结构更清晰,方便新手学习和维护。

v-1.5.x 分支

v-1.5.x 分支基于 Spring Boot 1.5.8.RELEASE,每个模块依赖单独的 spring-boot-demo-parent。
   因为不少同学反馈这种依赖方式对入门不够友好,运行配置相对复杂,
   所以该分支已经停止后续功能开发,后续内容会逐步迁移到 master 分支。
   仍在使用该分支学习的同学可以继续参考,但更推荐后期切换到 master 分支,
   毕竟官方 Spring Boot 也已经全面进入 2.x 版本。

开发环境依赖

  • JDK 1.8(建议统一使用 1.8)

  • Maven 3.5 及以上版本

  • IntelliJ IDEA Ultimate 2018.2 及以上版本  
         (须使用 IDEA 开发,并确保安装启用 Lombok 插件)

  • MySQL 5.7 及以上版本  
         (5.7 引入了一些新特性,并不完全向下兼容,示例中会尽量规避不兼容写法,但仍建议使用 5.7+)

运行方式概览

  1. 从代码托管平台克隆项目到本地(具体地址详见压缩包中的详情 HTML)。

  2. 使用 IntelliJ IDEA 打开克隆下来的项目根目录。

  3. 在 Maven 面板中导入根目录下的 pom.xml,等待依赖下载完成。

  4. 如果在 IDEA 中找不到 Maven Projects 面板,可以在顶部菜单勾选
         View → Tool Buttons,右侧即可出现 Maven 面板。

  5. 在对应模块中找到各个 demo 的 Application 启动类,直接运行即可启动相应示例。

注意:每个 demo 模块都配有详细的 README 说明文档,建议在运行前先阅读;
   部分示例还需要提前初始化数据库结构和数据,按说明脚本执行后再启动程序会更加顺利。

交流与拓展

如果你希望在该项目基础上看到更多集成示例,也可以在 issue 中提出需求,
   作者会视情况将其加入 TODO 列表,逐步完善。通过阅读与运行这些模块,
   可以系统地理解 Spring Boot 在真实项目中如何组合使用各种中间件和基础设施。

项目趋势

项目在开源平台上具有一定的 Star 与贡献记录,可以通过趋势图了解其活跃度和社区关注度,
   对于判断项目是否持续维护和学习价值也有一定参考意义。

项目趋势

微信图片_20251113234529_64_551.png