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