Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

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

@Service 中的 @Autowired 出现了相互注入,引起循环。

			
api    | ***************************
api    | APPLICATION FAILED TO START
api    | ***************************
api    | 
api    | Description:
api    | 
api    | The dependencies of some of the beans in the application context form a cycle:
api    | 
api    | ┌─────┐
api    | |  incarOrderFlowServiceImpl defined in URL [jar:file:/app/api.netkiller.cn.jar!/BOOT-INF/lib/api.netkiller.cn-1.0.0.jar!/com/zito/incar/service/impl/IncarOrderFlowServiceImpl.class]
api    | ↑     ↓
api    | |  incarOrderServiceImpl (field private cn.netkiller.service.IIncarAttachService cn.netkiller.service.impl.IncarOrderServiceImpl.iIncarAttachService)
api    | ↑     ↓
api    | |  incarAttachServiceImpl (field private cn.netkiller.service.IIncarOrderFlowService cn.netkiller.service.impl.IncarAttachServiceImpl.iIncarOrderFlowService)
api    | └─────┘
			
		

解决方案

增加 @Lazy 注解

			
@Slf4j
@Service
@Lazy
public class IncarOrderFlowServiceImpl implements IIncarOrderFlowService {

	@Autowired
	private ISysRoleService iSysRoleService;

	@Autowired
	private  IIncarOrderService iIncarOrderService;	
	...
	...
	...
}