## 项目概述

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 等第三方库。

## 安装与快速开始

1. 克隆仓库：`git clone https://github.com/xkcoding/spring-boot-demo.git`
2. 使用 IntelliJ IDEA 打开项目，并确保安装 Lombok 插件。
3. 在 IDEA 的 Maven Projects 面板中导入根目录下的 `pom.xml`。
4. 根据需要运行各个 Module 的 Application 类。
5. 注意：每个 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