新建服务
这篇解决什么
要加一块业务能力时,模块怎么拆、挂到哪、单体和微服务分别怎么启动。读完能照现有 yudao-module-hrm 的样子建 yudao-module-xxx-api + -server,并挂上前端和菜单。
默认端口 48080,管理端前缀 /admin-api。减模块见 迁移模块。目录全景见 项目结构。Profile 见 技术架构。
示意图:新模块是业务箱。用户、文件、权限继续用平台,不要在模块里再造一套登录。
模块怎么拆
对照人力资源模块抄骨架即可。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 聚合 | packaging 为 pom,声明两个子模块 | ruoyi-office/yudao-module-hrm/pom.xml |
| API | 枚举、ErrorCode、Feign 接口 | yudao-module-hrm-api/ |
| Server | Controller / Service / DO / Mapper | yudao-module-hrm-server/ |
| 微服务入口 | 独立进程时用 | HrmServerApplication |
| 单体引入 | 只依赖 *-server | ruoyi-office/yudao-server/pom.xml |
根 ruoyi-office/pom.xml 的 <modules> 要加上 yudao-module-xxx。groupId 保持 cn.iocoder.cloud,版本用 ${revision}。
Server 常见依赖:自己的 *-api、yudao-module-system-api、yudao-module-infra-api,以及 web / security / mybatis / redis / excel 等 Starter。需要审批再加 yudao-module-bpm-api。不要反向依赖 OA / CRM / 商城。
示意图:先能编译进单体,再补页面和菜单。微服务再单独起 XxxServerApplication。
单体和微服务
日常二开走 -P boot,启动 YudaoServerApplication。只要 yudao-server 引入了新的 *-server,Controller 就会出现在 48080。
-P cloud 时每个 *-server 自己打 fat jar。还要:
- 写
XxxServerApplication,包名放在cn.iocoder.yudao.module.xxx。 - 给
application.yaml起服务名,例如xxx-server。 - 在
yudao-gateway加Path=/admin-api/xxx/**路由。 - Nacos 能发现新实例。
网关和注册细节见 技术架构。
新模块单独建
新增业务按 yudao-module-xxx-api / -server 拆模块,表结构增量写到 ruoyi-office-db/update/。不要把新能力塞进已有无关模块。
前端和库表
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| PC API | 与后端模块同名 | ruoyi-office-vben/apps/web-antd/src/api/{module}/ |
| PC 页面 | 同样按模块分包 | src/views/{module}/ |
| 移动端 | 有 H5 / 小程序再加 | ruoyi-office-uniapp/src/pages-{module}/ |
| 表与菜单 | 主线增量进日期目录 | ruoyi-office-db/update/ |
菜单 id:官方 1–9999,二开 10000–99999。Controller 上的 @RequestMapping 不要手写 /admin-api,由 WebProperties 拼。
表、CRUD 骨架可以用 代码生成 先出一版,再按分层改包。带审批的单据不要只生成 CRUD,要按流程表单规范接 FlowBillService。
配置与操作
没有「新建服务」菜单或 Controller。开发按 yudao-module-xxx-api / -server 拆模块,菜单 id 官方 1–9999、二开 10000–99999。
骨架可先用代码生成。开启见 基建功能设计。
