news 2026/5/11 18:33:46

保姆级教程:在若依微服务框架(RuoYi-Cloud)中手把手教你新建一个业务模块

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:在若依微服务框架(RuoYi-Cloud)中手把手教你新建一个业务模块

若依微服务框架实战:从零构建高可用业务模块全流程解析

在当今企业级应用开发领域,微服务架构已成为应对复杂业务需求的首选方案。作为国内广泛采用的Java微服务框架,RuoYi-Cloud凭借其完善的权限体系和模块化设计,帮助开发者快速构建稳定可靠的企业应用。本文将深入剖析在已有若依微服务项目中新建业务模块的完整生命周期,从环境准备到前后端联调,每个环节都配有典型场景下的避坑指南。

1. 环境准备与项目初始化

在开始模块开发前,确保本地开发环境满足以下技术要求:

  • 基础环境

    JDK 1.8+ MySQL 5.7+ Redis 5.0+ Maven 3.6+ Node.js 12+
  • 微服务组件

    Nacos 2.0+(注册中心与配置中心) Sentinel 1.8+(流量控制)

提示:建议使用Docker快速搭建Nacos服务,避免版本兼容问题:

docker run --name nacos -e MODE=standalone -p 8848:8848 nacos/nacos-server:v2.0.3

项目初始化时常见问题集中在数据库连接配置。若依默认使用ry_config.sql初始化系统配置,其中包含的MySQL密码需要与实际环境保持一致。建议通过以下步骤修正:

  1. 在SQL文件中全局替换password为实际密码
  2. 检查ruoyi-system模块的bootstrap.yml中数据源配置
  3. 确认Nacos中ruoyi-system-dev.yml的数据库连接串

2. 模块创建与基础配置

2.1 模块骨架搭建

ruoyi-modules目录下新建业务模块(如ruoyi-product),目录结构应保持与系统模块一致:

ruoyi-product ├── src/main/java │ ├── com.ruoyi.product │ │ ├── config # 模块专属配置 │ │ ├── controller # 控制层 │ │ ├── domain # 实体类 │ │ ├── mapper # 数据层 │ │ └── service # 业务逻辑层 └── src/main/resources ├── bootstrap.yml # 微服务配置 └── application.yml # 应用配置

关键配置项对比:

配置项系统模块示例新模块调整要点
服务端口server.port: 9201选择未占用的端口号
应用名称spring.application.name: ruoyi-system改为ruoyi-product
MyBatis包扫描mybatis.typeAliasesPackage: com.ruoyi.system替换包路径

2.2 POM依赖管理

复制ruoyi-system的pom文件并修改关键字段:

<artifactId>ruoyi-product</artifactId> <name>ruoyi-product</name> <description>产品管理模块</description> <!-- 保持与父模块一致的依赖版本 --> <dependencies> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common-core</artifactId> </dependency> <!-- 其他必要依赖 --> </dependencies>

同时需要在父模块的pom中添加新模块声明:

<modules> <module>ruoyi-auth</module> <module>ruoyi-system</module> <module>ruoyi-product</module> <!-- 新增行 --> </modules>

3. Nacos服务注册与配置

3.1 配置中心管理

  1. 登录Nacos控制台(默认http://localhost:8848/nacos)
  2. 克隆ruoyi-system-dev.yml配置,命名为ruoyi-product-dev.yml
  3. 修改关键参数:
    # 数据源配置 datasource: url: jdbc:mysql://localhost:3306/ry_product?useSSL=false username: root password: your_password # MyBatis配置 mybatis: typeAliasesPackage: com.ruoyi.product.domain

3.2 网关路由配置

更新ruoyi-gateway-dev.yml,添加新模块的路由规则:

spring: cloud: gateway: routes: - id: ruoyi-product uri: lb://ruoyi-product predicates: - Path=/product/** filters: - StripPrefix=1

注意:路由Path前缀需与前端请求路径保持一致,避免出现404错误

4. 代码生成与业务开发

4.1 数据库表设计规范

创建业务表时需遵循若依代码生成器规范:

CREATE TABLE `prod_product` ( `product_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '产品ID', `product_name` varchar(50) NOT NULL COMMENT '产品名称', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', PRIMARY KEY (`product_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='产品信息表';

关键字段要求:

  • 必须包含标准审计字段(create_by, create_time等)
  • 字段注释完整,用于生成前端表单标签
  • 状态字段使用char(1)类型,符合若依字典规范

4.2 代码生成器使用

  1. 进入系统管理 → 代码生成
  2. 导入新创建的表
  3. 生成配置重点检查:
    • 生成模块:product
    • 业务名称:产品管理
    • 包路径:com.ruoyi.product
  4. 下载ZIP包解压到对应模块

4.3 权限标识修正

生成的Controller中需调整权限注解:

@RestController @RequestMapping("/product") public class ProductController { @RequiresPermissions("product:manage:list") @GetMapping("/list") public TableDataInfo list(Product product) { // ... } }

权限标识格式规范:

{模块}:{业务}:{操作} 示例:product:manage:add

5. 前端集成与菜单配置

5.1 Vue组件开发

ruoyi-ui中创建模块目录:

  1. src/api下新建product.js定义接口

    import request from '@/utils/request' export function listProduct(query) { return request({ url: '/product/list', method: 'get', params: query }) }
  2. src/views下创建页面组件

    <template> <div class="app-container"> <el-table :data="list" border> <el-table-column prop="productName" label="产品名称" /> </el-table> </div> </template> <script> import { listProduct } from '@/api/product' export default { data() { return { list: [] } }, created() { this.getList() }, methods: { getList() { listProduct().then(response => { this.list = response.rows }) } } } </script>

5.2 菜单权限配置

  1. 进入系统管理 → 菜单管理
  2. 新建顶级菜单(如"产品中心")
  3. 添加子菜单关联生成的路由路径
  4. 配置权限标识与后台Controller保持一致

典型菜单配置参数:

字段示例值说明
菜单名称产品管理前端显示名称
路由地址/product与Vue路由配置一致
权限标识product:manage:list对应@RequiresPermissions
组件路径product/indexviews目录下的相对路径

6. 联调测试与部署

6.1 本地启动顺序

  1. 基础服务:

    # 启动Nacos startup.cmd -m standalone # 启动Redis redis-server.exe
  2. 微服务模块(按依赖顺序):

    1. ruoyi-gateway 2. ruoyi-auth 3. ruoyi-system 4. ruoyi-product
  3. 前端开发模式:

    cd ruoyi-ui npm run dev

6.2 常见问题排查

  • 端口冲突:检查bootstrap.ymlserver.port是否唯一
  • 服务未注册:确认Nacos中显示新模块的服务实例
  • 接口404
    • 网关路由Path是否匹配
    • 前端请求路径是否包含模块前缀
  • 权限失效:检查菜单配置的权限标识与后台注解是否一致

在最近的一个电商平台项目中,我们为每个供应商创建独立模块时发现,当模块数量超过10个时,建议采用分组路由配置方案。例如将/product/**/inventory/**等商品相关路由统一归入/goods/**分组,既保持了接口规范,又避免了网关配置膨胀。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 18:28:18

CANN/ge KernelLaunchInfo类简介

简介 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好…

作者头像 李华
网站建设 2026/5/11 18:27:53

CANN/ops-nn同步BN训练更新算子

SyncBNTrainingUpdate 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库&#xff0c;实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理…

作者头像 李华
网站建设 2026/5/11 18:26:39

CANN/asc-devkit:SetScaleBType API文档

SetScaleBType 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.…

作者头像 李华
网站建设 2026/5/11 18:22:35

5分钟上手:免费暗黑破坏神2存档编辑器终极指南

5分钟上手&#xff1a;免费暗黑破坏神2存档编辑器终极指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2的重复刷装备而烦恼&#xff1f;想快速体验各种强力build却不想花费数百小时练级&#xff1f;d2s-edi…

作者头像 李华