Spring 构造方法循环依赖能可以用 @Lazy 解决么?
@Component
public class Apple{
public Apple(@Lazy Banana banana) {
System.out.println("banana = " + banana.toString()+","+banana.getClass());
}
}
Spring 构造方法循环依赖能可以用 @Lazy 解决么?
@Component
public class Apple{
public Apple(@Lazy Banana banana) {
System.out.println("banana = " + banana.toString()+","+banana.getClass());
}
}
可以的,只不过 Spring 是通过代理创建代理对象,在 Apple 调用 getBean() 流程中并没有触发 Banana 类的 getBean() 流程,而是返回的代理对象,至此 Apple 类就完成了实例化过程。侧面解决了构造方法循环依赖问题。