SpringBoot循环依赖

news2024/10/7 20:36:20

在这里插入图片描述

💗wei_shuo的个人主页

💫wei_shuo的学习社区

🌐Hello World !


SpringBoot循环依赖

循环依赖是指两个或多个模块或组件之间相互依赖形成闭环的情况。这种情况下,模块 A 依赖于模块 B,同时模块 B 也依赖于模块 A,导致它们之间形成了一个循环依赖

在这里插入图片描述

解决思路

  • 重构代码:重新组织代码结构,将循环依赖的部分解耦或重构为单向依赖关系

  • 引入中间层:引入一个中间层或接口,将循环依赖的部分通过中间层进行间接访问,从而打破循环依赖

  • 使用依赖注入:通过依赖注入框架,将依赖关系的创建和管理交给框架处理,从而避免显式的循环依赖

  • 梳理依赖关系:仔细审查和梳理模块之间的依赖关系,确保依赖关系的合理性和正确性

Spring Boot中如果在Service层调用Repository,而Repository又需要调用Service层,可以通过引入一个中间层来解决循环依赖问题,这个中间层可以是一个额外的Service或者一个专门处理业务逻辑的组件

Spring Boot中解决循环依赖问题的一种常见方法是引入一个中间层,将代码提升到更高的层级,然后通过该中间层进行调用。这种方式可以打破循环依赖,确保代码的正确执行顺序

  • SpringBoot中注入中间层依赖,通过调用中间层方法
@Resource
private InRefund inRefund;
inRefund.add(new RefundAdd(bean.getUniqueId(), bean.getTradeAmount(), "ChargebackWarnRefund", true));
  • InRefund接口
public interface InRefund {

     Result add(RefundAdd add);
}
  • 实现类
@Slf4j
@Service
public class InRefundImpl implements InRefund {
    @Resource
      ……
        
    @Override
    public Result add(RefundAdd add) {
       ……
    }
}

🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——点赞👍收藏⭐️评论📝


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1443445.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解析十六进制雷达数据格式:解析雷达数据类型。

以Cat62格式雷达数据为例,十六进制雷达数据部分代码: 3e0120bf7da4ffee0085 雷达数据使用2个字符(1个字节)标识,在这里是“3e”,转换为十进制数为62。 雷达数据类型父类: base_header_process…

openkylin(Debian系)安装nginx及安装前需要的准备

前言 现在很多linux系统都可以使用高级包管理工具安装软件了,但是在像是 openkylin这些新系统中,好多软件包虽然有,但是因为其依赖的包还没有做好,所 以安装会提示你一大堆依赖错误。所以还是要自己来编译安装咯。安装前准备&…

计算机网络之一

目录 1.因特网概述 1.1网络、互连网(互联网)和因特网 1.2.因特网发展的三个阶段 1.3基于ISP的三层架构的因特网 1.4.因特网的组成 2.三种交换方式 2.1电路交换 2.2分组交换 1.因特网概述 1.1网络、互连网(互联网)和因特网…

米贸搜|Facebook在购物季使用的Meta广告投放流程

一、账户简化 当广告系列开始投放后,每个广告组都会经历一个初始的“机器学习阶段”。简化账户架构可以帮助AI系统更快获得广告主所需的成效。例如: 每周转化次数超过50次的广告组,其单次购物费用要低28%;成功结束机器学习阶段的…

13. 串口接收模块的项目应用案例

1. 使用串口来控制LED灯工作状态 使用串口发送指令到FPGA开发板,来控制第7课中第4个实验的开发板上的LED灯的工作状态。 LED灯的工作状态:让LED灯按指定的亮灭模式亮灭,亮灭模式未知,由用户指定,8个变化状态为一个循…

中创ET4410 台式LCR数字电桥 简单开箱测评

最近买了一台LCR电桥,完善一下自己实验室的设备,选了中创ET4410,这款性价比高一点。 1199元在PDD买的,好像胜利的VC4090C也是找中创代工的。 ET4410介绍 本系列LCR数字电桥是采用自动平衡电桥原理设计的元件参数分析仪&#xf…

linux进程(环境变量)

目录 正文: 常见环境变量 和环境变量相关的的命令 通过代码获取环境变量 主函数参数 三个参数 参数调用 进程优先级 查看系统进程 PRI和NI 优先级修改 前言: 环境变量 (environment variables) 一般是指在操作系统中用来指定操作系统运行环境…

第68讲表单验证实现

表单验证实现 Form 组件允许你验证用户的输入是否符合规范,来帮助你找到和纠正错误。 Form 组件提供了表单验证的功能,只需为 rules 属性传入约定的验证规则,并将 form-Item 的 prop 属性设置为需要验证的特殊键值即可。 const rulesref({u…

掌握Pandas数据筛选方法与高级应用全解析【第70篇—python:数据筛选】

文章目录 掌握Pandas:数据筛选方法与高级应用全解析1. between方法2. isin方法3. loc方法4. iloc方法5. 查询复杂条件的结合应用6. 避免inplace参数7. 利用Lambda函数进行自定义筛选8. 处理缺失值9. 多条件排序10. 数据统计与分组 总结: 掌握Pandas&…

NLP_引入注意力机制

文章目录 点积注意力创建两个张量x1和x2计算张量点积, 得到原始权重对原始权重进行归一化求出注意力分布的加权和 缩放点积注意力编码器-解码器注意力定义Attention类重构Decoder类重构Seq2Seq类可视化注意力权重 注意力机制中的 Q、K、V自注意力多头自注意力注意力…

Excel——重复项处理

一、高亮重复项 选择需要高亮重复项的列/单元格 选择【数据】——【重复项】—— 【高亮重复项】 如果高亮重复项的数据较长,例如:身份证号、银行卡,可以勾选下列选项,能够精准检查重复项。 结果如下所示 如果想要清除高亮的重复…

Java并发基础:ArrayBlockingQueue全面解析!

内容摘要 ArrayBlockingQueue类是一个高效、线程安全的队列实现,它基于数组,提供了快速的元素访问,并支持多线程间的同步操作,作为有界队列,它能有效防止内存溢出,并通过阻塞机制平衡生产者和消费者的速度…

【Qt 学习之路】在 Qt 使用 ZeroMQ

文章目录 1、概述2、ZeroMQ介绍2.1、ZeroMQ 是什么2.2、ZeroMQ 主线程与I/O线程2.3、ZeroMQ 4种模型2.4、ZeroMQ 相关地址 3、Qt 使用 ZeroMQ3.1、下载 ZeroMQ3.2、添加 ZeroMQ 库3.3、使用 ZeroMQ3.4、相关 ZeroMQ 案例 1、概述 今天是大年初一,先给大家拜个年&am…

c++2024寒假J312实战班2.4

长话短说,简明扼要一直是我的行事风格,如有不精准的地方,就到网上去搜,好吧。 今天分享我们做的四道题,都挺简单的,就是难思考。 题目列表: 1.Maximum Subarray Sum 2.分解因数 3.公交换乘 4.…

05-Java原型模式 ( Prototype Pattern )

原型模式 摘要实现范例 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能原型模式实现了一个原型接口,该接口用于创建当前对象的克隆当直接创建对象的代价比较大时,则采用这种模式 例如&#xff0c…

用bootstrap结合jQuery实现简单的模态对话框

嗨害嗨,我又来了奥。今天呢,给大家分享一个工作中常用到的插件——模态对话框的用法。想必大家在工作中也遇到很多页面,需要用模态对话框进行交互的吧,现在呢,就让我们一起来了解一下它的使用吧。 首先,我…

《动手学深度学习(PyTorch版)》笔记8.3

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

【RabbitMQ(二)】:Exchange 详解 | Message Convert 消息转换器

文章目录 03. 使用 Java 代码去操控 RabbitMQ3.1 快速入门3.1.1 创建父子项目3.1.2 编写代码 3.2 Work 模型3.3 RabbitMQ 中的三类交换机3.3.1 Fanout 扇出交换机3.3.2 Direct 交换机3.3.3 Topic 交换机 3.4 声明队列交换机3.4.1 方式一:书写 Config 类3.4.2 方式二…

MySQL篇之回表查询

一、聚集索引 将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据。特点:必须有,而且只有一个。 聚集索引选取规则: 1. 如果存在主键,主键索引就是聚集索引。 2. 如果不存在主键,将使用第一个唯一(UNIQUE&am…

算法学习——LeetCode力扣栈与队列篇2

算法学习——LeetCode力扣栈与队列篇2 150. 逆波兰表达式求值 150. 逆波兰表达式求值 - 力扣(LeetCode) 描述 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。…