1.问题描述
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-05-07 09:59:53.905 ERROR 18672 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
The dependencies of some of the beans in the application context form a cycle:
oaSoContractHeadServiceImpl (field private bjja.hzero.customs.app.service.impl.StockComponentHeadServiceImpl bjja.hzero.customs.app.service.impl.OaSoContractHeadServiceImpl.stockComponentHeadService)
↓
stockComponentHeadServiceImpl defined in URL [jar:file:/data/src/hzero-customs/target/hzero-customs.jar!/BOOT-INF/classes!/bjja/hzero/customs/app/service/impl/StockComponentHeadServiceImpl.class]
┌─────┐
| packPlanCompLineRepositoryImpl defined in URL [jar:file:/data/src/hzero-customs/target/hzero-customs.jar!/BOOT-INF/classes!/bjja/hzero/customs/infra/repository/impl/PackPlanCompLineRepositoryImpl.class]
↑ ↓
| packPlanLineServiceImpl defined in URL [jar:file:/data/src/hzero-customs/target/hzero-customs.jar!/BOOT-INF/classes!/bjja/hzero/customs/domain/service/impl/PackPlanLineServiceImpl.class]
└─────┘
2.解决方案
@Autowire配合@Lazy懒加载使用
方法一:
@Lazy
@Autowired
private PackPlanLineService packPlanLineService;
方法二(针对构造注入):
private final PackPlanSrodLineMapper packPlanSrodLineMapper;
private final PackPlanLineService packPlanLineService;
private final CommonService commonService;
@Autowired
public PackPlanSrodLineRepositoryImpl(PackPlanSrodLineMapper packPlanSrodLineMapper,
@Lazy
PackPlanLineService packPlanLineService,
CommonService commonService) {
this.packPlanSrodLineMapper = packPlanSrodLineMapper;
this.packPlanLineService = packPlanLineService;
this.commonService = commonService;
}