@RequiredArgsConstrutor循环依赖问题


@RequiredArgsConstructor

lombok的注解,通过构造器注入对象,对象必须final;

循环依赖问题

***************************
APPLICATION FAILED TO START
***************************

Description:

The dependencies of some of the beans in the application context form a cycle:

   sxAuthController (field com.sixin.cloud.user.service.ISxAuthService com.sixin.cloud.user.controller.BaseController.sxAuthService)
┌─────┐
|  sxAuthServiceImpl defined in file [D:\javaWorkSpace\aiot-platform-cloud\user-center\user-center-server\target\classes\com\sixin\cloud\user\service\impl\SxAuthServiceImpl.class]
└─────┘

例:类ISxAuthService 已经依赖了 类sxAuthServiceImpl,不需要再使用@RequiredArgsConstrutor 构造注入了,形成了循环依赖的情况;

解决方式:

一、代码八成有问题的,比如上例: sxAuthService sxAuthController SxAuthServiceImpl,这三个类存在不该有的注入与@RequiredArgsConstrutor冲突了,把引入的那个类去掉,保留注解即可;

二、不用lombok的这个注解,使用@Resource、@Autowire都行;

三、@RequiredArgsConstructor(onConstructor = @__(@Autowired)), 这样写后,还可以用final的写法写,但是默认都是通过@Autowired注入的;

四、@RequiredArgsConstructor(onConstructor_ = {@Lazy}); 使用懒加载解决;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM