gpt4 book ai didi

java - 方法注入(inject)是如何实现的?

转载 作者:行者123 更新时间:2023-12-02 08:47:06 41 4
gpt4 key购买 nike

在实现类似spring的依赖注入(inject)的过程中,我对spring可以通过调用内部方法来注入(inject)bean感到困惑,但它是如何做到的呢?

如何实现这样的ioc容器:

@Bean
public A a() {
return new A();
}

@Bean
public B b() {
B b = new B();
b.setA(a());
return b;
}

@Bean
public C c() {
C c = new C();
c.setB(b());
return c;
}

最佳答案

假设我们正在讨论 @Configuration 类,创建了动态实例代理(使用 CGLIB),并且所有方法调用都被代理逻辑拦截。

如果是单例 bean(默认 bean 作用域),实际方法将在第一次调用时仅调用一次 - 您可以使用调试器自行验证这一点。连续的调用将被拦截,并从注册表中返回所支持的实例。

关于java - 方法注入(inject)是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61011031/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com