Appearance
micro-java 微服务后端概览
路径:packages/micro-java
技术:Spring Boot 3.3 + Spring Cloud 2023 + Spring Cloud Alibaba + MyBatis-Plus + JWT + Quartz
与 packages/server-java 并列,是 同一套 RBAC + 平台 + 监控契约 的 Java 微服务实现,经 Gateway :8080 对外统一暴露。
与 server-java 功能对齐
API 与 admin 前端能力与 server-java 一致。额外提供 Nacos、RabbitMQ/Kafka、Seata、Resilience4j 等微服务基础设施。
与 server-java 对比
| 维度 | server-java(单体) | micro-java(微服务) |
|---|---|---|
| 架构 | 单进程 | gateway + auth + system + monitor |
| 对外端口 | 8080 | 8080(gateway) |
| API 范围 | 完整 admin | 完整 admin(对齐) |
| 服务发现 | 无 | Nacos |
| 数据库 | 直连 MySQL | 各服务 spring.datasource 直连 MySQL |
| 分布式 | 无 | Seata、MQ、熔断 |
| 本地依赖 | MySQL | MySQL + Nacos + RabbitMQ(默认) |
| 初始化 | POST /system/database/init | 同上(经 Gateway 转发到 system-service) |
前端开发有两种联调方式(见 本地启动 — Web 联调):
- 推荐:
VITE_API_BASE_URL留空,走 Vite 代理(同源,无 CORS) - 直连 Gateway:
VITE_API_BASE_URL=http://localhost:8080(Gateway 已配置GatewayCorsConfig)
Maven 多模块结构
text
packages/micro-java/
├── pom.xml
├── scripts/sync-from-server-java.ps1 # 从 server-java 同步业务代码
├── xichen-domain/ # Entity、Mapper、DTO
├── xichen-common/ # JWT、Security、OperLog AOP
├── auth-service/ (:8081)
├── system-service/ (:8082) — 12 Controller + DatabaseInit
├── monitor-service/ (:8083) — 日志 + Quartz
└── gateway/ (:8080)| npm 包名 | 端口 | 说明 |
|---|---|---|
@xichen-micro/gateway | 8080 | API 网关 |
@xichen-micro/auth-service | 8081 | 认证 |
@xichen-micro/system-service | 8082 | RBAC + 平台 + init |
@xichen-micro/monitor-service | 8083 | 监控 + 定时任务 |
API 模块一览
| 服务 | 路径前缀 | 文档 |
|---|---|---|
| gateway | 转发 | Gateway |
| auth-service | /api/v1/auth/*、/health | Auth |
| system-service | /api/v1/system/* | System |
| monitor-service | /api/v1/monitor/* | Monitor |
共享库:common-domain
快速启动
见 本地启动。
bash
docker compose up -d
# Nacos :8848、RabbitMQ :5672
cd packages/micro-java && mvn install -DskipTests
pnpm --filter @xichen-micro/auth-service dev
pnpm --filter @xichen-micro/system-service dev
pnpm --filter @xichen-micro/monitor-service dev
pnpm --filter @xichen-micro/gateway dev
curl -X POST http://localhost:8080/api/v1/system/database/init默认账号:admin / admin123
Swagger(经网关)
契约:contracts/openapi/rbac-api.yaml + platform-api.yaml