【Spring】Spring循环依赖的解决方案

news2024/11/14 2:04:05

【Spring】Spring循环依赖的解决方案

  • 开篇词:
  • 干货篇:
      • 1.@PostConstruct方法:
      • 2.构造函数注入和Setter方法注入:
      • 3.配置文件注明【允许存在循环引用】
      • 4.@Lazy
      • 5.SpringUtil的getBean
  • 我是杰叔叔,一名沪漂的码农,下期再会!

开篇词:

本篇不介绍循环依赖的简介和原理(想了解,自行百度哈),纯分享下解决方案。
ps:解决方案的优雅程度依次递增
在这里插入图片描述

干货篇:

1.@PostConstruct方法:

@PostConstruct方法需要在Bean初始化后手动进行依赖注入

  • 优雅程度:极不优雅
  • 方案评价:性能差,适用场景少

2.构造函数注入和Setter方法注入:

构造函数注入是一种在Bean初始化时就解决循环依赖的有效方式。 而Setter方法注入和字段注入是Spring的默认依赖注入方式

  • 优雅程度:稍许优雅
  • 方案评价:适用于大多数情况,但处理不了复杂场景

3.配置文件注明【允许存在循环引用】

spring.main.allow-circular-references=true

  • 优雅程度:还算优雅
  • 方案评价:简单粗暴,全局强制,不太建议

4.@Lazy

@Lazy
private UserService userService;
  • 优雅程度:较优雅
  • 方案评价:将循环依赖的 bean 声明为懒加载(lazy)可以延迟初始化

5.SpringUtil的getBean

将你注入进来的service,用这种方式替代

SpringUtil.getBean(XXX.class)
  • 优雅程度:优雅
  • 方案评价:采用hutool包内的SpringUtil,简单,影响面小

在这里插入图片描述

我是杰叔叔,一名沪漂的码农,下期再会!

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

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

相关文章

Swift concurrency 3 — 三种异步方式(@escaping closure, Combine, async/await)

直到现在为止,如果我们想要异步请求数据,应该说至少有三种方式: 传统的通过闭包(escaping closure)方式回调处理。通过Combine的发布者订阅者机制。通过async/await组合的方式。 采用哪种方式,还得因项目…

基于微信小程序音乐分享与交流平台---附源码95587

摘 要 随着移动互联网的普及,微信小程序作为一种轻量级的应用程序,正逐渐成为人们获取信息和服务的便捷渠道。为了给用户提供便捷、多样化的音乐分享和交流渠道,本文提出了—种基于微信小程序的音乐分享与交流平台的设计与实现方案。通过该平…

SqlServer还原数据库后,数据库显示受限制用户解决方法

SqlServer还原数据库后,数据库显示受限制用户解决方法: 1.打开SSMS。 2.选中连接的数据库,右击鼠标右键,点击属性 3.在属性对话框中选择选项 4.在该对话框的右边,找到【限制访问】,并且将其改为:【MULTI_USER】 5.点击…

1个月2万粉的AI职业头像号,1分钟速成超详细教程

大家好 今天要拆解的是一个**小红书的AI职业头像号博主,**博主使用了手绘的二次元风格头像,不到1个月,现在的粉丝数已经1.9万了,收藏点赞9万。 有图有真相: 一、账号作品分析 这个博主的账号都是图文笔记。使用AI制…

【Google Maps JavaScript API】Simple Click Events 详解

文章目录 一、Simple Click Events 简介1. 什么是 Simple Click Events?2. 为什么使用 Simple Click Events? 二、Simple Click Events 的实现1. 基本代码结构2. 设置地图样式3. 初始化地图 三、处理点击事件1. 为标记添加点击事件2. 中心改变事件 四、完…

【JAVA基础】抽象类

抽象类 引言抽象类 抽象方法 引言 ​ 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 …

【Google Maps JavaScript API】Geolocation功能实现用户位置定位

文章目录 一、什么是Geolocation?二、Geolocation的应用场景三、如何使用Geolocation功能1. 初始化地图2. 编写初始化地图的JavaScript代码3. 代码解析初始化地图创建定位按钮获取用户位置处理定位错误 4. 样式设置5. 运行示例 四、注意事项五、总结 Google Maps Ja…

【GIT】Idea中的git命令使用-全网最新详细(包括现象含义)

原文网址:【GIT】Idea中的git命令使用-全网最新详细(包括现象含义) 文章目录 **命令1:查看当前所处分支:****命令2:拉取最新代码:****命令3:切换分支:****命令4&#xff…

AIOps探索 | 运维应急的六个阶段

当下,金融科技快速发展的时代,银行和金融机构的IT系统日益复杂,业务量呈指数式增长。面对这一挑战,运维应急已成为确保金融服务稳定性和可靠性的关键因素。 智能运维应急即在IT系统出现异常或故障时,快速发现问题、准…

【达梦数据库】数据库频繁崩溃记录-非dump分析

这里写目录标题 背景查找原因问题解决补充 背景 用户反映系统CentOS上的数据库频繁崩溃,系统没有崩溃过,希望帮忙分析下 查找原因 查看数据库运行日志:无任何报错 查看数据库错误日志:无报错 查看OS运行日志,/var…

EPLAN中如何制作标题页和封页?

EPLAN中如何制作标题页和封页? 如下图所示,我们打开EPLAN,新建一个项目,

开学季有什么必买的好物?提升学习效率的好物来啦!学生党必看!

对于即将开学的学生们来说,选择一款性价比高的电容笔是非常重要的。它不仅能够提升学习效率,还能带来更加流畅舒适的书写与绘画体验。接下来,我将推荐一款非常适合学生使用的电容笔,它不仅性能可靠,而且价格亲民&#…

大语言模型向量检索技术综述:背景知识、数据效率、泛化能力、多任务学习、未来趋势

预训练语言模型如BERT和T5,是向量检索(后续文中使用密集检索)的关键后端编码器。然而,这些模型通常表现出有限的泛化能力,并在提高领域内准确性方面面临挑战。最近的研究探索了使用大型语言模型(LLMs)作为检索器&#…

苹果机器人计划:能否成为智能家居的破局者?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

ADB 获取屏幕坐标,并模拟滑动和点击屏幕

本文声明:本文是参考https://blog.csdn.net/beyond702/article/details/69258932编制。同时,补充了在windows系统模式下,详细的获取屏幕坐标的步骤。 1.判断设备与windows电脑USB连接是否正常 在CMD窗口输入命令:ADB devices,按ENTER键,输出如下结果,则表示连接正常。 …

LLM大模型微调心得:全面经验总结与技巧分享

导读 模型越大对显卡的要求越高,目前主流对大模型进行微调方法有三种:Freeze方法、P-Tuning方法和Lora方法。本文总结了作者在ChatGLM-6B模型微调的经验,并汇总了目前各类开源项目&数据。 写在前面 大型语言模型横行,之前非…

Android经典实战之Kotlin的delay函数和Java中的Thread.sleep有什么不同?

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 Kotlin 中的 delay 函数和 Java 中的 Thread.sleep 都用于暂停代码执行,但是它们用于不同的场景,并且有不同的实现和影响…

饭馆扫码点餐小程序什么方法进行开发

扫码点餐模式出现的时间已经比较久,其主要作用便是节约客商时间,客户自己点餐,商家响应餐品跟进,降低服务员长时间沟通成本,当然客户饭馆消费也不能只依靠工具,还是需要与服务结合,打造有温度的…

企业网络安全“九九八十一难”,且看XDR的黑!神!话!

近期,游戏《黑神话悟空》的热度攀升,不仅汇聚了全球玩家的目光,也悄然成为黑客及网络不法分子的目标。 游戏预热阶段,其剧情视频意外泄露,迅速在网络上引发热烈讨论与业内关注。随后,有黑客组织公开宣称将…

Tongweb8074+7049m4 安装TongFlowControl(by lqw)

文章目录 介绍安裝包和説明Tongweb8074 安装TongFlowControlTongweb7049m4 安装TongFlowControl 介绍 TongFlowControl是面向分布式服务架构的流量监控工具,是TongWeb基于QPS/并发数和调用关系的流量 控制功能,可在TongFlowControl控制台进行实时监控和…