问题:
一次开发代码提交导致的bug,本地idea中启动正常,发布到测试环境UnsatisfiedDependencyException异常,测试环境docker部署;
解决方案:
1)@Lazy注解,延迟加载(不推荐)我们代码量非常大,注解加起来很费劲
2)找到报错类(UnsatisfiedDependencyException下面一句就能找到),循环依赖是两个类互相引用导致;
例子(mapper引用报错的很明显,这里只说service报错): A.service B.service A中引用B,B中引用A,使用@Autowired注解,理论上不会有问题的,因为我们一直是这么用的,然而,有一天不行了,报错了,各种排查;
最后发现:B中又重复导入了一次A的包,在idea中只显示灰色,本地启动不会报错,其实,在A、B属于同包类,不需要再导入一次;
疑问:为什么本地没问题,测试环境会又问题;本地是在idea中启动,idea能够自动识别出来,而线上代码在启动的时候不会自动过滤和识别,导致线上一直启动报错;
完美解决!