应用程序服务器和Spring中的动态代理

时间:2016-02-19 17:49:59

标签: java spring spring-mvc proxy application-server

在我看来,代理是应用服务器内部工作的关键 和Spring之类的框架,一般来说它们用于实现注释方法所要求的行为(例如转移传播等)。

动态代理让开发人员不关心他们的生存,事实上开发人员从未见过代理人。代码。

我的问题是:如果动态代理不存在,那么事情会如何运作? 我最好的猜测是它们应该是静态生成的,并且可能与其他应用程序类一起部署在战争中 你能证实或证明我的猜错了吗?

感谢

1 个答案:

答案 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 });