ruoyi-plus新增ruoyi-api-模块 日期:2025-05-13 分类:1 人气:1 若依微服务框架,服务间接口调用是通过ruoyi-api模块来管理的,RuoYi-Cloud-Plus版本使用Dubbo来完成服务间调用。 我们有一个模块patrol,要在该模块中访问另外一个模块collection中的接口不能直接import,需要定义一个DubboService,通过接口的形式来访问。 为了统一管理,我们把模块collection所有的对外接口统一放到ruoyi-api中形成一个子模块ruoyi-api-collection。 步骤如下: ### ruoyi-api-collection模块 - 新建模块ruoyi-api-collection pom.xml如下: ``` <?xml version="1.0" encoding="UTF-8"?> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <groupId>org.dromara</groupId> <artifactId>ruoyi-api</artifactId> <version>${revision}</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>ruoyi-api-collection</artifactId> <description> ruoyi-api-collection 藏品接口模块 </description> <dependencies> <!-- RuoYi Common Core--> <dependency> <groupId>org.dromara</groupId> <artifactId>ruoyi-common-core</artifactId> </dependency> <dependency> <groupId>org.dromara</groupId> <artifactId>ruoyi-common-bus</artifactId> </dependency> </dependencies> </project> ``` - 定义collection业务接口 ``` package org.dromara.collection.api; /** * 通用 藏品服务 */ public interface RemoteCollectionService { /** * 获取当前藏品名称 * * @param id 藏品id */ String getCollectionNameByTaskId(String id); } ``` - 将ruoyi-api-collection模块添加到ruoyi-api和ruoyi-api-bom模块的pom.xml中,使其成为前者的子模块,后者是为了添加版本 ### ruoyi-collection模块 - 在ruoyi-collection模块中添加依赖 ``` <dependency> <groupId>org.dromara</groupId> <artifactId>ruoyi-api-collection</artifactId> </dependency> ``` - 定义接口RemoteCollectionService实现类 ``` package com.longday.collection.dubbo.impl; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboService; import org.dromara.collection.api.RemoteCollectionService; /** * RemoteCollectionServiceImpl */ @DubboService @RequiredArgsConstructor public class RemoteCollectionServiceImpl implements RemoteCollectionService { /** * 获取当前藏品名称 * * @param id 藏品id */ @Override public String getCollectionNameByTaskId(String id) { return "hello my"; } } ``` > 注意使用注解@DubboService ### ruoyi-patrol模块 - 在ruoyi-patrol模块中添加依赖 ``` <dependency> <groupId>org.dromara</groupId> <artifactId>ruoyi-api-collection</artifactId> </dependency> ``` - 调用`RemoteCollectionService`获取数据 ``` package com.longday.patrol.controller; import lombok.RequiredArgsConstructor; import jakarta.validation.constraints.*; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.web.core.BaseController; import org.dromara.common.core.domain.R; import com.longday.patrol.domain.vo.VolunteersVo; import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.collection.api.RemoteCollectionService; /** * 藏品 * 前端访问路由地址为:/patrol/collection */ @Validated @RequiredArgsConstructor @RestController @RequestMapping("/collection") public class CollectionController extends BaseController { @DubboReference private final RemoteCollectionService collectionService; /** * 获取藏品详细信息 * * @param id 主键 */ @GetMapping("/{id}") public R<VolunteersVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable String id) { return R.ok(collectionService.getCollectionNameByTaskId(id)); } } ``` > 注意使用注解@DubboReference ### 鸣谢 - [RuoYi-Cloud-Plus**疯狂的狮子Li**](https://plus-doc.dromara.org/#/ruoyi-cloud-plus/home) 标签: java 若依 上一篇:vscode使用Community Server Connector运行JDK1.8项目报错 下一篇:OpenFeign 实现熔断降级无效解决办法 随便看看 2024-02-19 PHP7 运算符“??” 和“?:”的区别 2022-11-30 Linux 后台运行命令 2022-11-25 关于我们 2022-11-30 centos一键系统安装lnmp集成环境 2022-11-30 linux 生成 ssh 公钥 留言