MossChat 后端服务(Spring Boot + MyBatis + Redis),负责账号体系、聊天消息、群组、朋友圈、公告、版本更新、AI 能力与 WebSocket 推送。
| 类别 | 技术 |
|---|---|
| 运行时 | Java 21 |
| 框架 | Spring Boot 3.5.3 |
| 数据访问 | MyBatis |
| 缓存 | Redis / Redisson |
| 数据库 | MySQL |
| 通信 | HTTP + Netty WebSocket |
| 可观测性 | Actuator + Micrometer + Prometheus |
默认配置来自 application.yml:
| 项 | 默认值 |
|---|---|
| HTTP 端口 | 5050 |
| API Context Path | /api |
| WebSocket 端口 | 5051 |
| Actuator 端口 | 5052 |
| 依赖 | 建议版本 |
|---|---|
| JDK | 21 |
| Maven | 3.9+ |
| MySQL | 5.7+ |
| Redis | 6+ |
在仓库根目录导入 SQL(文件:../mosschat.sql):
mysql -u root -p mosschat < ../mosschat.sql编辑 src/main/resources/application.yml,至少检查这些字段:
| 配置项 | 说明 |
|---|---|
spring.datasource.* |
MySQL 连接 |
spring.data.redis.* |
Redis 连接 |
project.folder |
文件存储根目录(需可写) |
cos.client.* |
COS 对象存储 |
spring.mail.* |
邮件服务 |
spring.ai.* / llm.providers.* |
AI 供应商配置 |
admin.emails |
管理员邮箱白名单 |
开发启动:
mvn spring-boot:run打包并运行:
mvn clean package
java -jar target/mosschat-java-1.0.jar也可使用项目内脚本:
- Windows:
start.bat - Linux/macOS:
start.sh
| 命令 | 说明 |
|---|---|
mvn test |
运行测试 |
mvn clean package |
打包产物 |
mvn spring-boot:run |
本地启动 |
mosschat-java
├─ src/main/java/com/mosschat
│ ├─ controller # API 控制器
│ ├─ service / service/impl# 业务层
│ ├─ mappers # MyBatis Mapper 接口
│ ├─ entity # DTO / VO / PO / 配置对象
│ ├─ websocket # WebSocket 相关实现
│ └─ agent # AI 相关能力与工具
├─ src/main/resources
│ ├─ application*.yml # 配置文件
│ ├─ com/mosschat/mappers # MyBatis XML
│ └─ prompts # AI Prompt 模板
└─ src/test/java # 测试代码
Actuator 暴露端点位于:
http://<host>:5052/actuator
Prometheus 指标:
http://<host>:5052/actuator/prometheus
建议在生产环境中:
- 收紧 Actuator 暴露端点。
- 限制来源 IP 与鉴权策略。
- 将所有敏感配置改为环境变量或密钥管理服务。