Spring 循环依赖:本地不报错,线上却报错
Spring 大约 289 字现象
本地启动Spring Boot
时,没有报循环依赖错误,程序正常启动。
线上环境报循环依赖错误,程序无法启动。
原因
不同的操作系统,bean
的加载顺序是不固定的。
扫描BeanDefiniton
的方法是ClassPathScanningCandidateComponentProvider#scanCandidateComponents()
,这个方法在不同的环境下扫描出类的顺序是不固定的。
因为底层是走的java.lang.ClassLoader#getResources()
。
解决方法
方法一
去掉循环依赖。(往往是构造方法方式注入)
方法二
添加@Lazy
注解。
阅读 616 · 发布于 2023-07-06
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Linux grep 转义特殊符号阅读 11591
-
IDEA 去除 Unchecked cast from Object to 提示阅读 3778
-
设计模式之模板方法模式阅读 2469
-
JavaScript 将 Number 转成 String阅读 35
-
Windows 使用 Wireshark 抓取本地数据包阅读 2882
-
Java jstat 监控远程服务阅读 1770
-
OpenResty 使用 cjson 操作 JSON 数据阅读 7068
-
Spring Boot 设置 application.yaml application.properties 配置文件读取路径阅读 1499
-
Windows 下使用 Wireshark 抓取 HTTP2 加密数据包阅读 4350
-
Spring Boot RabbitMQ Execution of Rabbit message listener failed阅读 8109