Java中代理模式的内部工作?
例如,在Spring和Hibernate这样的代理模式中,当类A被加载时,B和C类不会被加载,直到像B.bgh这样的操作没有完成 我的问题是,当我们还没有写任何东西的时候,b.bgh如何创建b的对象 b=新的b() 同样,spring的自动布线功能是如何工作的Java中代理模式的内部工作?,java,spring,dependency-injection,proxy,autowired,Java,Spring,Dependency Injection,Proxy,Autowired,例如,在Spring和Hibernate这样的代理模式中,当类A被加载时,B和C类不会被加载,直到像B.bgh这样的操作没有完成 我的问题是,当我们还没有写任何东西的时候,b.bgh如何创建b的对象 b=新的b() 同样,spring的自动布线功能是如何工作的 class A{ int abc; B b; A(){ } } class B{ int bgh; C c; B(); } class C
class A{
int abc;
B b;
A(){
}
}
class B{
int bgh;
C c;
B();
}
class C{
String jkl;
}
经过大量的头脑风暴,我得出了以下答案: 每当类A被实例化时,B和C的代理类就会被创建,而这些代理类没有自己的数据 类代理{B}扩展了B,类代理{C扩展了C{} 这些代理类满足了类A拥有B和C实例的需要 现在,当我们查询任何与B和C类相关的内容时, i、 e b、 getSomething()或c.getSomething() 此时,将创建并传递B和C的实际实例 这也称为延迟初始化