在我看来,代理是应用服务器内部工作的关键 和Spring之类的框架,一般来说它们用于实现注释方法所要求的行为(例如转移传播等)。
动态代理让开发人员不关心他们的生存,事实上开发人员从未见过代理人。代码。
我的问题是:如果动态代理不存在,那么事情会如何运作? 我最好的猜测是它们应该是静态生成的,并且可能与其他应用程序类一起部署在战争中 你能证实或证明我的猜错了吗?
感谢
答案 0 :(得分:-1)
动态代理是在运行时使用java反射通过类java.lang.reflect.Proxy创建的,此处是javadoc中有关如何创建代理的示例。
Proxy提供了用于创建动态代理类的静态方法 实例,它也是所有动态代理类的超类 由这些方法创造。
为某些界面Foo创建代理:
InvocationHandler handler = new MyInvocationHandler(...); Class proxyClass = Proxy.getProxyClass( Foo.class.getClassLoader(), new Class[] { Foo.class }); Foo f = (Foo) proxyClass. getConstructor(new Class[] { InvocationHandler.class }). newInstance(new Object[] { handler });