Java OpenResty Spring Spring Boot MySQL Redis MongoDB PostgreSQL Linux Android Nginx 面试 小程序 Arthas JVM AQS juc Kubernetes Docker 诊断工具


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

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批