Skip to content

Java 后端概览(单体 server-java)

路径:packages/server-java
入口:com.xichen.server.ServerJavaApplication
技术:Spring Boot 3.4 + Spring Security 6 + JWT + MyBatis-Plus + Quartz + springdoc-openapi

另有微服务实现

同一 RBAC 契约的微服务版本见 micro-java 概览(Gateway 对外仍 :8080)。

启动

bash
# 根目录
docker compose up -d
pnpm --filter @xichen-full-stack/server-java dev

# 或 Maven
cd packages/server-java
mvn spring-boot:run

默认端口 8080。Swagger:http://localhost:8080/swagger-ui.html

模块结构

text
com.xichen.server/
├── auth/                    # 登录、Token、me、个人资料
│   ├── controller/          AuthController
│   ├── dto/                 LoginRequest、AuthDtos、ChangePasswordRequest
│   └── service/             AuthService、CustomUserDetailsService

├── system/                  # RBAC + 平台管理(若依风格扩展)
│   ├── controller/          13 个 REST Controller(users/roles/menus/...)
│   ├── dto/                 SystemDtos、UserExcelRow
│   ├── entity/              SysUser、SysRole、SysMenu、SysPermission、SysDept、...
│   ├── mapper/              MyBatis-Plus Mapper(15 个)
│   └── service/             CRUD、数据权限、Excel、文件、DatabaseInit

├── monitor/                 # 操作/登录日志 + Quartz 定时任务
│   ├── annotation/          @Log 操作审计
│   ├── aspect/              OperLogAspect
│   ├── controller/          operlogs / logininfor / jobs / job-logs
│   ├── entity/              SysOperLog、SysLogininfor、SysJob、SysJobLog
│   ├── service/             日志 CRUD、QuartzScheduleService、SysJobService
│   └── task/                DemoTask(种子演示任务)

└── common/                  # 横切能力
    ├── config/              Security、MyBatis、OpenAPI、Upload、DatabaseInit 配置
    ├── exception/           BusinessException、GlobalExceptionHandler
    ├── response/            ApiResponse、PageResult
    ├── security/            JWT Filter/Provider、401/403 Handler
    └── util/                PageParams、DateTimeUtils、MenuClientUtils

资源文件

路径说明
src/main/resources/application.yml数据源、Quartz、JWT、CORS、上传、DB init 开关
src/main/resources/db/schema.sql表结构(与 contracts/sql/schema.sql 对齐)
src/main/resources/db/drop.sqlinit 时删表脚本

契约层:contracts/openapi/rbac-api.yaml + contracts/openapi/platform-api.yaml

API 模块一览

模块前缀文档
Auth/api/v1/auth/*/api/v1/healthAuth 与菜单
System/api/v1/system/*System 平台管理
Monitor/api/v1/monitor/*Monitor 监控

配置

application.yml 支持环境变量覆盖:

变量说明默认(见 yml)
SERVER_PORT服务端口8080
DB_HOST / DB_PORT / DB_NAMEMySQL
DB_USER / DB_PASSWORD数据库账号
JWT_SECRETJWT 签名密钥开发密钥(生产必改)
CORS_ORIGINS允许的前端源,逗号分隔localhost:5173 等
DB_INIT_ALLOW_WEB是否允许 Web 端 inittrue
UPLOAD_PATH文件上传目录./uploads

本地与 docker-compose 对齐

开发时可将 DB_* 设为 localhost:3306、用户 xichen / 密码 xichen123(见根目录 docker-compose.yml)。application.yml 中的默认值以你仓库当前配置为准,部署前请核对。

数据库初始化

POST /api/v1/system/database/init — 执行 drop.sql + schema.sql + 种子数据(admin / 菜单 / 权限 / 字典 / 参数等)。详见 数据库初始化

白名单放行,无需登录(生产建议 DB_INIT_ALLOW_WEB=false)。

启动容错

SysJobService.initJobs()@PostConstruct 中加载已启用的 Quartz 任务。若 sys_job 等表尚未创建,只记录 WARN,不阻断 Spring 启动。完整 RBAC 数据仍须通过 init 接口写入。

seed_data 在应用启动时也会尝试补种,但 已有用户则跳过(与 init 全量重置不同)。

默认账号

通过 init 写入:admin / admin123。admin 角色拥有全部权限。

相关文档

Xichen Full Stack 内部文档