西门子【Library of General Functions (LGF) for SIMATIC S7-1200 / S7-1500】
文章目录
-
- 概要
- 整体架构流程
- 技术名词解释
- 技术细节
- 小结
概要

整体架构
技术名词
LGF_BitReset (FC / V3.0.1) | 复位DWORD变量中的指定位 |
LGF_BitSet (FC / V3.0.1) | 置位DWORD变量中的指定位 |
LGF_BitSetTo (FC / V3.0.1) | 设置DWORD变量中的指定位 |
LGF_BitTest (FC / V3.0.1) | 判断DWORD变量中的指定位 |
LGF_BitToggle (FC / V3.0.1) | 切换DWORD变量中的指定位 |
LGF_IecTimerOnOff (FB / V1.0.0) | 通电断电延时功能块 |
LGF_PulseRelay (FB / V3.0.1) | 脉冲继电器功能块 |
LGF_GetCalendarDay (FC / V3.0.1) | 计算当前日期天数 |
LGF_GetCalendarWeek_ISO (FC / V3.0.1) | 计算当前日期周数 |
LGF_GetCalendarWeek_US (FC / V3.0.1) | 计算当前日期周数 |
LGF_IsGermanHoliday (FC / V3.0.1) | 判断给定日期是否为德国节假日 |
LGF_AstroClock (FB / V3.0.1) | 根据给定GPS左边计算日出日落时间 |
LGF_SetTime (FB / V3.0.3) | 设定时间和时区 |
LGF_TimerSwitch (FB / V3.1.0) | 定义时间切换点 |
LGF_BitCount (FC / V3.0.2) | 计算DWord变量中值为TRUE的位数 |
LGF_CountArrayElements (FC / V1.0.0) | 计算数组的原始个数从0开始 |
LGF_CountBooleanEdges (FB / V1.0.0) | 计算特定时间内输入信号的边沿信号次数 |
LGF_CountFalInDWord (FB / V3.0.1) | 计算DWord变量中1-0跳变的位的个数 |
LGF_CountRisInDWord (FB / V3.0.1) | 计算DWord变量中0-1跳变的位的个数 |
LGF_GetBitStates (FB / V1.0.0) | 计算DWord变量中上升沿下降沿的位的个数 |
LGF_BinaryMaskCompare (FC / V1.0.0) | 通过掩码比较两个二进制数 |
LGF_CompareLReal (FC / V3.0.2) | 通过近似公式比较两个浮点数 |
LGF_CompareLRealByPrecision (FC / V3.0.2) | 通过近似公式比较两个浮点是否相等 |
LGF_CompareString (FC / V1.0.0) | 比较两个字符串 |
LGF_CompareVariant (FC / V3.0.1) | 比较两个Variant变量 |
LGF_CalcDistance_2D (FC / V3.0.1) | 通过2维坐标计算距离 |
LGF_CalcDistance_3D (FC / V3.0.1) | 通过3维坐标计算距离 |
LGF_GetFactorial (FC / V3.0.1) | 计算自然数的幂数 |
LGF_IsValueInLimits (FC / V3.0.1) | 判断给定变量在上下限设定值范围内 |
LGF_IsValueInRange (FC / V3.0.1) | 判断给定变量在设定区间内 |
LGF_IsValueInTolerance (FC / V3.0.2) | 判断给定变量在设定值和公差范围内 |
LGF_NthRoot (FC / V3.0.1) | 开方功能块 |
LGF_Random_DInt (FC / V3.0.1) | 生成Dint随机数 |
LGF_Random_Real (FC / V3.0.1) | 生成Real随机数 |
LGF_Random_UDInt (FC / V3.0.1) | 生成UDint随机数 |
LGF_RandomRange_DInt (FC / V3.0.1) | 指定范围内生成Dint随机数 |
LGF_RandomRange_Real (FC / V3.0.1) | 指定范围内生成Real随机数 |
LGF_RandomRange_UDInt (FC / V3.0.1) | 指定范围内生成UDint随机数 |
LGF_ScaleLinear (FC / V3.0.1) | 通过线性方程缩放输入变量 |
LGF_SearchMinMax (FC / V3.0.1) | 寻找最大值和最小值 |
LGF_SearchMinMax_DInt (FC / V3.0.2) | 寻找Dint最大值和最小值 |
LGF_SearchMinMax_LReal (FC / V3.0.2) | 寻找LReal最大值和最小值 |
LGF_SearchMinMax_UDInt (FC / V3.0.1) | 寻找UDint最大值和最小值 |
LGF_Integration (FB / V3.0.2) | 计算曲线下的面积 |
LGF_IsValueInToleranceByTime (FB / V1.0.0) | 判断值在给定值的误差范围内 |
LGF_StoreMinMax (FB / V3.0.1) | 计算输入值的历史最大值和最小值 |
LGF_MatrixAddition (FC / V3.0.1) | 矩阵加法 |
LGF_MatrixCompare (FC / V3.0.1) | 矩阵比较 |
LGF_MatrixInverse (FC / V3.0.1) | 矩阵反转 |
LGF_MatrixMultiplication (FC / V3.0.1) | 矩阵乘法 |
LGF_MatrixScalarMultiplication (FC / V3.0.1) | 矩阵缩放 |
LGF_MatrixSubtraction (FC / V3.0.1) | 矩阵减法 |
LGF_MatrixTranspose (FC / V3.0.1) | 矩阵变换 |
LGF_CalcCRC16 (FC / V3.1.0) | CRC16计算 |
LGF_CalcCRC16Advanced (FC / V3.1.0) | 先进CRC16计算 |
LGF_CalcCRC32 (FC / V3.1.0) | CRC32计算 |
LGF_CalcCRC32Advanced (FC / V3.1.0) | 先进CRC32计算 |
LGF_CalcCRC8 (FC / V3.1.0) | CRC8计算 |
LGF_CalcCRC8Advanced (FC / V3.1.0) | 先进CRC8计算 |
LGF_CalcCRC8For1Byte (FC / V3.0.1) | 计算1字节CRC8 |
LGF_IsParityEven (FC / V3.0.1) | 判断是否为偶校验 |
LGF_IsParityOdd (FC / V3.0.1) | 判断是否为奇校验 |
LGF_DataLogC (FB / V1.0.0) | 日志系统功能 |
LGF_FIFO (FB / V3.0.1) | 先进先出堆栈操作 |
LGF_FileRead (FB / V1.0.0) | 文件读取 |
LGF_FileWrite (FB / V1.0.0) | 文件写入 |
LGF_LIFO (FB / V3.0.1) | 后进显出堆栈操作 |
LGF_ShellSort_DInt (FB / V3.0.1) | Dint变量排序 |
LGF_ShellSort_LReal (FB / V3.0.1) | LReal变量排序 |
LGF_ShellSort_UDInt (FB / V3.0.1) | UDint变量排序 |
LGF_ShiftRegister (FB / V1.0.3) | LReal类型数组排序 |
LGF_BinaryToGray (FC / V3.0.1) | 二进制转格雷码 |
LGF_DecodeUtf8 (FC / V1.0.0) | 十进制转UTF8 |
LGF_DTLToJulianDate (FC / V0.0.1) | DTL的日期和时间转换为儒略日期 |
LGF_DTLToString_DE (FC / V3.0.1) | DTL的日期和时间转换为字符串 |
LGF_DTLToString_ISO (FC / V3.0.1) | DTL的日期和时间转换为ISO字符串 |
LGF_DTLToUnixTime (FC / V3.0.2) | DTL的日期和时间转换为UNIX时间 |
LGF_EncodeUtf8 (FC / V1.0.0) | UTF8编码 |
LGF_GpsDDToGps (FC / V3.0.2) | GpsDDT转Gps |
LGF_GpsToGpsDD (FC / V3.0.2) | Gps转GpsDDT |
LGF_GrayToBinary (FC / V3.0.1) | 格雷码转二进制 |
LGF_IntToString (FC / V3.0.1) | Int转string |
LGF_JulianTimeToDTL (FC / V0.0.1) | 儒略日期转DTL |
LGF_StringToDTL_DE (FC / V3.0.1) | String时间转DTL_DE |
LGF_StringToDTL_ISO (FC / V3.0.1) | String时间转DTL_ISO |
LGF_StringToInt (FC / V3.0.1) | String转Int |
LGF_StringToTaddr (FC / V3.0.1) | String转TADDR_Param |
LGF_StringToTime (FC / V3.0.1) | String转Time |
LGF_TaddrToString (FC / V3.0.1) | TADDR_Param转String |
LGF_TimeToString (FC / V3.0.1) | Time转String |
LGF_UnixTimeToDTL (FC / V3.0.1) | Unix转DTL |
LGF_SwapBlockDWord (FC / V1.0.0) | Dword数组高低字节交换 |
LGF_SwapBlockLWord (FC / V1.0.0) | LWord数组高低字节交换 |
LGF_SwapBlockWord (FC / V1.0.0) | Word数组高低字节交换 |
LGF_MergeBitsToByte (FC / V3.0.1) | 8个位组成一个字节 |
LGF_MergeBitsToDWord (FC / V3.0.1) | 32个位组成一个Dword |
LGF_MergeBitsToWord (FC / V3.0.1) | 16个位组成一个Dword |
LGF_MergeBytesToDWord (FC / V3.0.1) | 2个Byte组成一个Word |
LGF_MergeBytesToWord (FC / V3.0.1) | 2个Byte组成一个Word |
LGF_MergeWordsToDWord (FC / V3.0.1) | 2个Word组成一个DWord |
LGF_SplitByteToBits (FC / V3.0.1) | 将一个Byte拆分为8个位 |
LGF_SplitDWordToBits (FC / V3.0.1) | 将一个Dword拆封为32个位 |
LGF_SplitDWordToBytes (FC / V3.0.1) | 将一个Dword拆封为4个字节 |
LGF_SplitDWordToWords (FC / V3.0.1) | 将一个Dword拆封为2个字 |
LGF_SplitWordToBits (FC / V3.0.1) | 将一个Word拆封为16个位 |
LGF_SplitWordToBytes (FC / V3.0.1) | 将一个Word拆封为2个字节 |
LGF_ExtractStringFromCharArray (FC / V1.1.0) | 提取由前后文本指定的中间字符串 |
LGF_ExtractStringFromCharArrayAdv (FC / V1.1.0) | 从指定位置开始提取由前后文本指定的中间字符串 |
LGF_FindStringInCharArray (FC / V1.1.0) | 从Char数组中查找指定字符串 |
LGF_ToLower (FC / V1.0.0) | 将字符串中大写字母转换为小写字母 |
LGF_ToUpper (FC / V1.0.0) | 将字符串中小写字母转换为大写字母 |
LGF_CelsiusToFahrenheit (FC / V3.0.1) | 摄氏度转为华氏度 |
LGF_CelsiusToKelvin (FC / V3.0.1) | 摄氏度转为开尔文 |
LGF_ConvertTemperature (FC / V3.0.1) | 将输入值转换为指定温度单位 |
LGF_FahrenheitToCelsius (FC / V3.0.1) | 华氏度转为摄氏度 |
LGF_FahrenheitToKelvin (FC / V3.0.1) | 华氏度转为开尔文 |
LGF_KelvinToCelsius (FC / V3.0.1) | 开尔文转为摄氏度 |
LGF_KelvinToFahrenheit (FC / V3.0.1) | 开尔文转为华氏度 |
LGF_KelvinToRankine (FC / V3.0.1) | 开尔文转为朗肯 |
LGF_RankineToKelvin (FC / V3.0.1) | 朗肯转为开尔文 |
LGF_CosinusCI (FB / V3.0.2) | 余弦函数生成器 |
LGF_Frequency (FB / V3.0.1) | 频率发生器 |
LGF_Impulse (FB / V3.0.1) | 脉冲发生器 |
LGF_RectangleCI (FB / V3.0.1) | 方波发生器 |
LGF_SawToothCI (FB / V3.0.1) | 锯齿波发生器 |
LGF_SinusCI (FB / V3.0.2) | 正弦波发生器 |
LGF_TriangleCI (FB / V3.0.1) | 三角波发生器 |
LGF_LimRateOfChangeAdvancedCI (FB / V3.0.1) | 斜波转换器 |
LGF_LimRateOfChangeCI (FB / V3.0.1) | 输入变量变化率限制 |
LGF_NonLinearInterpolation (FB / V3.0.1) | 插值点实现特征曲线 |
LGF_RampCI (FB / V3.0.1) | 插值点实现速度曲线 |
LGF_AverageAndDeviation (FC / V3.0.1) | 计算算数平方值和标准差 |
LGF_DifferenceQuotientFC (FC / V3.0.1) | 等距采样数值微分 |
LGF_RegressionLine (FC / V3.0.1) | 非循环计算线性平均值 |
LGF_SimpleSmoothingFC (FC / V3.0.1) | 非循环计算平滑值 |
LGF_SmoothByPolynomFC (FC / V3.0.1) | 多项式非循环计算平滑值 |
LGF_Boxplot_DInt (FB / V3.0.1) | Dint数据概览 |
LGF_Boxplot_LReal (FB / V3.0.1) | LReal数据概览 |
LGF_Boxplot_UDInt (FB / V3.0.1) | UDint数据概览 |
LGF_DifferenceQuotientFB (FB / V3.0.1) | 对时间上等距采样值进行数值微分 |
LGF_FloatingAverage (FB / V3.0.2) | 计算Float类型的算数平均值 |
LGF_Histogram_DInt (FB / V3.0.1) | 直方图显示DInt样本的频率分布 |
LGF_Histogram_LReal (FB / V3.0.1) | 直方图显示LReal样本的频率分布 |
LGF_Histogram_UDInt (FB / V3.0.1) | 直方图显示UDint样本的频率分布 |
LGF_SimpleSmoothingFB (FB / V3.0.1) | 循环计算算数平均值 |
LGF_SmoothByPolynomFB (FB / V3.0.1) | 通过多项式循环计算算数平均值 |
LGF_IsBigEndian (FC / V1.0.0) | 检测执行系统字节数 |
LGF_IsLittleEndian (FC / V1.0.0) | 检测执行系统字节数 |
LGF_ActDeactDevice (FB / V1.0.0) | 监测设备连接和错误状态 |
LGF_ReadPnInterfaceParameter (FB / V1.0.0) | 获取指定硬件的IP,MAC等信息 |
LGF_CountFalInDWord (FC / V3.0.1) | 分析DWORD类型的变量,并输出1-0序列的频率 |
LGF_CountRisInDWord (FC / V3.0.1) | 分析DWORD类型的变量,并输出0-1序列的频率 |
LGF_SawTooth (FB / V3.0.1) | 通过增量和波束产生锯齿波 |
技术细节
小结
相关文章:

西门子【Library of General Functions (LGF) for SIMATIC S7-1200 / S7-1500】
文章目录 概要整体架构流程技术名词解释技术细节小结 概要 通用函数库 (LGF) 扩展了 TIA Portal 中用于 PLC 编程的 STEP 7 指令(数学函数、时间、计数器 等)。该库可以不受限制地使用,并包含 FIFO 、搜索功能、矩阵计算、 astro 计…...
IntelliJ IDEA 2023.3 中配置 Spring Boot 项目的热加载
IntelliJ IDEA 2023.3 中配置 Spring Boot 项目的热加载 在 IntelliJ IDEA 2023.3 中配置 Spring Boot 项目的热加载,可以让你在不重启应用的情况下看到代码修改的效果。以下是详细的配置步骤: 添加 spring-boot-devtools 依赖 在 pom.xml 文件中添加 …...

Python----Python高级(正则表达式:语法规则,re库)
一、正则表达式 1.1、概念 正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、 regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母࿰…...

通过Ukey或者OTP动态口令实现windows安全登录
通过 安当SLA(System Login Agent)实现Windows安全登录认证,是一种基于双因素认证(2FA)的解决方案,旨在提升 Windows 系统的登录安全性。以下是详细的实现方法和步骤: 1. 安当SLA的核心功能 安…...

Node.js接收文件分片数据并进行合并处理
前言:上一篇文章讲了如何进行文件的分片:Vue3使用多线程处理文件分片任务,那么本篇文章主要看一下后端怎么接收前端上传来的分片并进行合并处理。 目录: 一、文件结构二、主要依赖1. express2. multer3. fs (文件系统模块)4. pat…...
Lsky-Pro在线图片搭建教程(Docker部署方式)
Lsky Pro+ 是一个使用 PHP 语言,采用 Laravel 框架开发的一款 Web 图片管理程序,中文名:兰空图床。如果你需要一个在线图床程序,那么这个开源项目可以帮助到你,部署流程非常简单。本章教程记录如何部署Lsky-Pro。 一、拉取镜像 docker pull halcyonazure/lsky-pro-docke…...
“深入浅出”系列之算法篇:(2)openCV、openMV、openGL
OpenCV是一个的跨平台计算机视觉库,可以运行在Linux囚、Windows 和Mac OS操作系统上。它轻量级而且高效,由一系列 C函数和少量C类构成,同时也提供了Python 接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenMV是一个开源,低成本&am…...

AI 新动态:技术突破与应用拓展
目录 一.大语言模型的持续进化 二.AI 在医疗领域的深度应用 疾病诊断 药物研发 三.AI 与自动驾驶的新进展 四.AI 助力环境保护 应对气候变化 能源管理 后记 在当下科技迅猛发展的时代,人工智能(AI)无疑是最具影响力的领域之一。AI 技…...

从CRUD到高级功能:EF Core在.NET Core中全面应用(三)
目录 IQueryable使用 原生SQL使用 实体状态跟踪 全局查询筛选器 并发控制使用 IQueryable使用 在EFCore中IQueryable是一个接口用于表示可查询的集合,它继承自IEnumerable但具有一些关键的区别,使得它在处理数据库查询时非常有用,普通集…...

【记录】Jenkins版本及JDK关系介绍的官网地址
Redhat Jenkins Packages...
vue3-json-viewer和vue-json-pretty插件使用,vue3 json数据美化展示
本文介绍vue3如何进行json数据pretty展示 1 vue3-json-viewer 1.1 安装 npm install vue3-json-viewer --save1.2 全局引入 在main.ts中引入,然后直接在组件中使用 import { createApp } from vue import App from ./App.vue import JsonViewer from "vue3…...

python转转商超书籍信息爬虫
1基本理论 1.1概念体系 网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等,可以按照我们设置的规则自动化爬取网络上的信息,这些规则被称为爬虫算法。是一种自动化程序,用于从互联网上抓取数据。爬虫通过模拟浏览器的行为,访问网页并…...
Spring Boot 中的 InitializingBean:Bean 初始化背后的故事
在 Spring Boot 应用中,Bean 的生命周期管理至关重要。InitializingBean 接口允许 Bean 在完成属性注入后执行自定义初始化逻辑。本文将深入探讨 InitializingBean 接口在 Spring Boot 中的应用,揭示其工作原理,并分享一些最佳实践࿰…...

微信小程序:实现单选,多选,通过变量控制单选/多选
一、实现单选功能 微信小程序提供了 radio 组件来实现单选功能。radio 组件需要配合 radio-group 使用。 1. WXML 代码 <radio-group bindchange"onRadioChange"><label wx:for"{{items}}" wx:key"id"><radio value"{{it…...
MOS怎样选型,步骤详解
一:选用N沟道还是P沟道 为设计选择正确器件的第一步是决定采用N沟道还是P沟道MOSFET。在典型的功率应用中,当一个MOSFET接地,而负载连接到干线电压上时,该MOSFET就构成了低压侧开关。在低压侧开关中,应采用N沟道M…...
CMake技术细节:解决未定义,提供参数
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
1688 满足跨境业务需求而提供的一组 API 接口
1688 跨境属性接口系列是 1688 开放平台为满足跨境业务需求而提供的一组 API 接口,其中最主要的是1688.item_get : 一:1688.item_get接口 接口功能:主要用于查询 1688 商品的跨境属性,为开发者和商家提供了获取商品跨境关键信息…...

物联网网关Web服务器--CGI开发实例BMI计算
本例子通一个计算体重指数的程序来演示Web服务器CGI开发。 硬件环境:飞腾派开发板(国产E2000处理器) 软件环境:飞腾派OS(Phytium Pi OS) 硬件平台参考另一篇博客:国产化ARM平台-飞腾派开发板…...

计算机网络 (51)鉴别
前言 计算机网络鉴别是信息安全领域中的一项关键技术,主要用于验证用户或信息的真实性,以及确保信息的完整性和来源的可靠性。 一、目的与重要性 鉴别的目的是验明用户或信息的正身,对实体声称的身份进行唯一识别,以便验证其访问请…...

【Docker】搭建一个功能强大的自托管虚拟浏览器 - n.eko
前言 本教程基于群晖的NAS设备DS423的docker功能进行搭建,DSM版本为 DSM 7.2.2-72806 Update 2。 n.eko 支持多种类型浏览器在其虚拟环境中运行,本次教程使用 Chromium 浏览器镜像进行演示,支持访问内网设备和公网地址。 简介 n.eko 是…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...