如何通过 spring 容器解决循环依赖关系

共2个回答, 标签: java spring dependency-injection

例如,班级员工依赖于班级学生,而班级学生依赖于班级员工,而班级员工依赖于班级员工

第1个答案
第2个答案
    Spring dependency injection will not resolve cycles. Even more - it will prompt you with exception on application start-up suggesting that you have a cycle:
Org.Spring框架.beans.factory.BeanCurrentlyInCreationException:
创建名为 “服务” 的 bean 时出错:
请求的 bean 当前正在创建中: 是否存在无法解析的循环引用?

顺便说一句,你可以很容易地自己复制它:

@ 配置
类循环配置 {
@ 豆
公共服务 a (服务 b) {
返回新服务 (服务 b);
}

@ 豆
公共服务 b (服务 a) {
返回新的服务 b (服务 a);
}
}

@ RequiredArgsConstructor
类服务 {
私人最终服务 b;
}

@ RequiredArgsConstructor
类服务 b {
私人最终服务;
}

相关问题

Java 是 "逐项传递" 还是 "按值传递"? 如何比较 Java 中的字符串? 什么是 Null Pointerexception, 我如何修复它? Spring Boot 2-在 bean 初始化之前做一些事情 获取 Java 中的所有异常并远程发送 如果 Spring 可以在 @ Configuration 类中成功拦截类内函数调用,为什么它在常规 bean 中不支持它? 如何通过 spring 容器解决循环依赖关系 ASP 中静态方法的依赖注入网络核心 从不同的模块为同一令牌动态注入不同的服务实例