Java中代理模式的内部工作?

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

例如,在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{
    String jkl;

    }

经过大量的头脑风暴,我得出了以下答案:

每当类A被实例化时,B和C的代理类就会被创建,而这些代理类没有自己的数据

类代理{B}扩展了B,类代理{C扩展了C{}

这些代理类满足了类A拥有B和C实例的需要

现在,当我们查询任何与B和C类相关的内容时, i、 e

b、 getSomething()或c.getSomething()

此时,将创建并传递B和C的实际实例

这也称为延迟初始化