若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)

模块之间的关系

我们可以了解到一共有这么多服务,我们先启动这三个服务

在这里插入图片描述

其中rouyi–api模块是远程调用也就是提取出来的openfeign的接口
ruoyi–commom是通用工具模块
其他几个都是独立的服务

在这里插入图片描述

ruoyi-api模块

api模块当中有几个提取出来的OpenFeign的接口
分别为文件,日志,用户服务
在这里插入图片描述

我们以RemoteUserService接口为例子:其中contextId = "remoteUserService"为bean的名称,
value = ServiceNameConstants.SYSTEM_SERVICE为接口的描述,
fallbackFactory = RemoteUserFallbackFactory.class调用失败时候的降级策略,一般会打印返回错误日志信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接下来查看接口提供方和调用方

提供方
在这里插入图片描述
调用方
在这里插入图片描述

我们注意这几个地方。通过自定义注解@innerAuth+AOP来拒绝外部请求

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

切面逻辑

在这里插入图片描述
但是这依然存在一个问题,就是我们可以用postman之类的工具,配置一个请求头携带参数
from-source:inner 从而来在外部直接访问内部服务。若依在网关这里通过过滤器将外部请求做了一次处理,清楚的携带这个参数的可能

在这里插入图片描述

还有一点就是不同服务间的调用需要携带一些参数,若依通过拦截器来进行相关的设置

在这里插入图片描述

<think>好的,我现在需要解决用户在若依微服务项目中,后端打包时因为导入ruoyi-api-system包而出现的依赖缺失问题。用户提到使用Maven,所以应该和Maven的依赖管理有关。首先,我要回忆一下若依微服务项目的结构,以及常见的依赖配置问题。 根据用户提供的引用[2],项目结构是分布式的,各个模块可能被拆分成不同的子模块,比如ruoyi-api-system可能是一个单独的模块。在Maven多模块项目中,如果父项目没有正确声明子模块,或者子模块之间的依赖没有正确配置,就会导致找不到依赖的问题。 用户提到的ruoyi-api-system包可能属于其中一个子模块。首先需要检查父项目的pom.xml文件,确认是否有包含该模块作为子模块。例如,父pom的<modules>部分应该列出所有子模块,包括ruoyi-api-system。如果这个模块没有被包含进去,Maven在构建时就不会编译和安装它,导致其他依赖它的模块找不到该包。 接下来,检查依赖该模块的项目的pom.xml文件,比如ruoyi-my2模块是否在依赖中正确引用了ruoyi-api-system。根据引用[1],用户可能在某个模块的pom中添加了依赖,但groupId、artifactId或本号可能有误。需要确保依赖的坐标与ruoyi-api-system模块中定义的完全一致。比如,如果ruoyi-api-system的groupId是com.ruoyi,artifactId是ruoyi-api-system,本是项目中的正确本,那么依赖项应该正确声明。 另外,Maven的仓库中可能没有该模块的jar包。在本地开发时,可能需要先执行mvn install将ruoyi-api-system安装到本地仓库。如果这个模块没有被正确安装,其他模块在编译时就会找不到依赖。用户是否在打包前对所有模块进行了完整的构建?正确的顺序应该是先构建父项目,确保所有子模块都被正确编译和安装。 另外,检查ruoyi-api-system模块本身的pom.xml是否有问题,比如是否定义了正确的打包方式(通常是jar),是否有遗漏的依赖或插件配置。如果该模块依赖其他模块或外部库,这些依赖也需要正确声明,否则在构建时可能失败。 还有一种可能是项目的依赖本不一致。比如,父pom中定义的本和子模块中声明的本不一致,导致Maven无法解析正确的依赖。需要统一所有模块本号,通常在父pom中使用<version>属性来管理,子模块继承这个本。 此外,Maven的本地仓库可能存在损坏或旧本的问题。可以尝试清理本地仓库中ruoyi-api-system相关的目录,然后重新执行mvn clean install,强制重新下载或重新编译该模块。 如果项目使用了Spring CloudSpring Boot的依赖管理,可能需要检查是否正确引入了相关的BOM(Bill of Materials),以确保所有依赖的本兼容。例如,在父pom中引入spring-cloud-dependencies或spring-boot-dependencies来管理本。 总结可能的原因和解决方案: 1.模块未在父pom中声明:添加ruoyi-api-system到父pom的modules中。 2. 依赖声明错误:检查groupId、artifactId和本是否正确。 3. 未安装到本地仓库:先构建ruoyi-api-system模块,执行mvn install。 4. 依赖本冲突:统一各模块本管理,使用父pom中的属性。 5. 本地仓库问题:清理并重新构建。 6. 模块打包配置错误:确保ruoyi-api-system的打包方式正确,且生成有效的jar包。 根据用户提供的引用[1],他们在pom中添加了一个依赖,但可能是类似的配置错误导致问题。例如,是否在ruoyi-my2的pom中正确引用了ruoyi-api-system的坐标。同时,检查是否有拼写错误或路径错误。例如,artifactId是否正确,是否有空格或大小写问题。 最后,可能需要指导用户按照步骤检查他们的项目配置,确保所有模块正确声明和构建顺序正确。</think>在若依微服务框架中解决ruoyi-api-system依赖缺失问题,需按以下步骤排查: ### 分步解决方案 1. **检查父pom模块声明** 打开父项目的pom.xml文件,确认是否包含ruoyi-api-system子模块: ```xml <modules> <module>ruoyi-api-system</module> <module>ruoyi-my2</module> </modules> ``` 若未声明该模块,添加后执行`mvn clean install`重新构建父项目[^2]。 2. **验证依赖坐标正确性** 在需要引用的模块(如ruoyi-my2)的pom.xml中,检查依赖声明是否符合ruoyi-api-system的实际坐标: ```xml <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-system</artifactId> <version>${project.version}</version> </dependency> ``` 注意:`project.version`应与父pom中定义的本一致[^1]。 3. **执行本地仓库安装** 进入ruoyi-api-system模块目录,单独执行安装命令: ```bash cd ruoyi-api-system mvn clean install ``` 该操作会将编译后的jar包安装到本地仓库,解决其他模块的依赖识别问题。 4. **检查多模块构建顺序** 在项目根目录执行完整构建: ```bash mvn clean install -DskipTests ``` 确保构建顺序符合依赖关系,通常父模块会先构建依赖模块再构建消费模块。 5. **排查本冲突问题** 使用Maven依赖树分析工具: ```bash mvn dependency:tree -Dincludes=com.ruoyi:ruoyi-api-system ``` 检查是否存在多个本冲突,若有冲突需在父pom中通过`<dependencyManagement>`统一本。 ### 典型错误示例及修正 **错误声明方式**: ```xml <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-system-api</artifactId> <!-- 错误artifactId --> <version>3.8.0</version> <!-- 与父项目本不一致 --> </dependency> ``` **正确声明方式**: ```xml <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-system</artifactId> <!-- 精确匹配模块名称 --> <version>${ruoyi.version}</version> <!-- 继承父项目本变量 --> </dependency> ``` ### 补充验证方法 1. **查看本地仓库文件** 检查本地Maven仓库是否存在对应jar包: ``` ~/.m2/repository/com/ruoyi/ruoyi-api-system/${version}/ ``` 正常应包含`ruoyi-api-system-${version}.jar`文件。 2. **IDE依赖验证** 在IntelliJ IDEA中: - 右键点击项目 > Maven > Reload Project - 检查模块依赖是否出现红色波浪线提示 - 使用`mvn idea:idea`命令重新生成IDE配置 3. **持续集成环境处理** 若在CI/CD环境中出现该问题,需确保: - 构建顺序遵循模块依赖关系 - 私有仓库已正确部署ruoyi-api-system的构建产物 - 使用`mvn deploy`将依赖发布到私有仓库
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值