一个结合了高品质音乐播放与优雅文字创作的文艺社区网站。
项目采用现代微核与依赖分层设计,模块划分清晰对齐:
MusicStory (根目录)
├── apps (应用层入口)
│ ├── admin-app (后台管理系统 API)
│ ├── web-app (前台用户端 API)
│ └── web-client (前端 Vue 3 独立客户端工程)
├── modules (业务领域模块)
│ ├── shared (基础公共定义、存储接口声明)
│ ├── user (用户领域模型与业务逻辑)
│ ├── content (文章、公告、轮播图内容领域)
│ ├── relation (社交关系与关注粉丝模块)
│ ├── notification (通知发送、WebSocket 与 RabbitMQ 消费)
│ ├── security (Spring Security 认证与安全配置)
│ └── search (基于 Elasticsearch 的全文搜索模块)
└── infrastructure (基础设施层依赖配置)
├── persistence (持久化配置,MyBatis-Plus 及 Druid 监控)
├── cache (Redis 缓存模板与配置)
├── messaging (RabbitMQ 连接与参数定义)
├── oss (基于 aws-java-sdk-s3 的抽象 S3 存储服务实现)
└── observability (系统可观测性与健康度量指标,待扩充)
项目已添加 spring-boot-docker-compose 原生支持。启动主类时,Docker Compose 会自动拉取并启动 Redis、RabbitMQ、Elasticsearch 等底层容器。
容器启动后,需要启用 RabbitMQ 的延时队列插件:
rabbitmq_delayed_message_exchange 插件 (版本需与 RabbitMQ 匹配),下载地址:RabbitMQ Community Plugins。docker cp rabbitmq_delayed_message_exchange-3.10.2.ez rabbitmq:/plugins
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_delayed_message_exchange
项目包含 data.sql 文件,启动 MySQL 容器后导入该 SQL 文件即可完成初始数据的填充。
在最新版本中,我们对以下历史遗留问题和痛点进行了彻底修复与重构:
4.0.4 原生适配 Spring Boot 3.5+ / 4.x,解决启动加解密失效报错。druid-spring-boot-3-starter,移除老旧包引用并补充 Servlet Filter 过滤器,完美激活 /druid/index.html 控制台。AmazonS3 客户端与 StorageService 接口进行完全解耦。控制器层全面转为构造器依赖注入。AsyncPoolConfig.java 中硬件资源开销巨大的物理线程池,全量路由至 SimpleAsyncTaskExecutor 虚拟线程执行器。