@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