xkcoding / spring-boot-demo
xkcoding/spring-boot-demo
🚀一个用来深入学习并实战 Spring Boot 的项目。
项目概览
项目概述
spring-boot-demo 是一个用于深入学习和实战 Spring Boot 的开源项目,由 xkcoding 创建。项目包含 66 个集成 demo,已完成 55 个,覆盖了 Spring Boot 生态中的众多常用组件和中间件,如监控、日志、ORM、缓存、消息队列、搜索引擎、安全认证等。每个 demo 都有独立的 README 说明,方便开发者按需学习和实践。
核心功能
- 监控与可视化:集成 Actuator 和 Spring Boot Admin,提供应用运行状态监控。
- 日志管理:集成 Logback、AOP 日志记录、GrayLog 日志收集。
- 模板引擎:支持 Freemarker、Thymeleaf、Beetl、Enjoy 等多种模板引擎。
- ORM 与数据库:集成 JdbcTemplate、JPA、MyBatis、MyBatis-Plus、BeetlSQL,并支持多数据源、分库分表(Sharding-JDBC)。
- 缓存:集成 Redis 和 Ehcache。
- 消息队列:集成 RabbitMQ、Kafka,RocketMQ 待完成。
- 任务调度:支持 Spring Task、Quartz、XXL-Job。
- 安全认证:集成 Spring Security(RBAC)、Shiro(待完成)、OAuth(待完成)、JustAuth 第三方登录。
- 搜索引擎:集成 ElasticSearch(含 7.x Rest High Level Client)。
- 其他:文件上传、邮件发送、WebSocket、分布式锁(Zookeeper)、限流(Guava/Redis+Lua)、代码生成器、Flyway 数据库迁移等。
适用与不适用场景
适用场景:
- 学习 Spring Boot 集成各种主流组件的开发者。
- 需要快速搭建 Spring Boot 项目原型或参考实现的团队。
- 教学培训中作为 Spring Boot 实战案例。
不适用场景:
- 生产环境直接使用:项目为 demo 性质,未经过生产级优化和测试。
- 需要最新 Spring Boot 版本:项目基于 Spring Boot 2.1.0.RELEASE,版本较旧。
- 需要完整业务逻辑:demo 仅展示集成方式,不包含完整业务功能。
技术架构与依赖
- 语言:Java
- 框架:Spring Boot 2.1.0.RELEASE
- 构建工具:Maven 3.5+
- JDK 版本:1.8+
- 数据库:MySQL 5.7+(部分模块需要)
- 主要依赖:Spring Boot Starters(web、data-jpa、data-redis、data-elasticsearch、security、amqp、kafka 等),以及 MyBatis、MyBatis-Plus、Quartz、XXL-Job、Swagger、JustAuth、Zookeeper、Dubbo、MongoDB、Neo4j、Flyway 等第三方库。
安装与快速开始
- 克隆仓库:
git clone https://github.com/xkcoding/spring-boot-demo.git - 使用 IntelliJ IDEA 打开项目,并确保安装 Lombok 插件。
- 在 IDEA 的 Maven Projects 面板中导入根目录下的
pom.xml。 - 根据需要运行各个 Module 的 Application 类。
- 注意:每个 demo 都有详细的 README,运行前请阅读;部分 demo 需要预先初始化数据库。
典型使用方法
- 运行单个 demo:在 IDEA 中打开对应模块,运行其 Application 类。
- 学习集成方式:参考各模块的 README 和代码,了解如何集成特定组件。
- 自定义扩展:基于 demo 代码修改,快速搭建自己的项目骨架。
配置与部署要点
- 配置文件:每个模块的
application.yml或application.properties中配置相关参数,如数据库连接、Redis 地址等。 - 数据库初始化:部分模块需要先执行 SQL 脚本初始化数据,脚本通常位于模块的
resources目录。 - 部署:项目可打包为可执行 JAR 或 WAR(参考 demo-war 模块),部署到服务器。
- 注意:不同模块可能需要不同的外部服务(如 MySQL、Redis、RabbitMQ 等),请确保这些服务可用。
限制、风险与许可证
- 限制:项目基于 Spring Boot 2.1.0,部分组件版本较旧,可能不兼容最新版本;部分 demo 标注为“待完成”,功能不完整。
- 风险:作为学习项目,代码可能未考虑生产环境的安全性和性能,直接用于生产存在风险。
- 许可证:MIT License,允许自由使用、修改和分发。
官方链接
- GitHub 仓库:https://github.com/xkcoding/spring-boot-demo
- 作者博客:https://xkcoding.com
信息来源和分析时间
- 信息来源:GitHub 仓库 README(https://github.com/xkcoding/spring-boot-demo)
- 分析时间:2025-04-11