Boz*_*zho 52
代理由AOP使用.简而言之:
通常你有.
Caller --> Real object
Run Code Online (Sandbox Code Playgroud)
但是,例如,当您想要自动事务管理时,spring会为您的真实对象设置代理
Caller --> Proxy --> Real object
Run Code Online (Sandbox Code Playgroud)
代理启动事务的位置.
这篇文章很好地解释了代理的本质及其在春天的效率(性能)
Tho*_*ung 19
该动态代理是JDK的一个特点.它可以用于使用调用处理程序实现接口.
动态代理类(下面简称为代理类)是一个类,它实现在创建类时在运行时指定的接口列表,其行为如下所述.代理接口就是由代理类实现的接口.代理实例是代理类的实例.每个代理实例都有一个关联的调用处理程序对象,该对象实现了InvocationHandler接口.
动态代理有一些开销.但是,对于大多数用例,开销不会很大.真正的问题是动态代理的(过度)使用使得应用程序更难理解和调试.例如,动态代理将在堆栈跟踪中显示多个行.
动态代理通常用于实现装饰器.其中一个例子是Spring的AOP.(我不想深入了解AOP的细节,也不会使用AOP术语来保持简单).某些问题在一个类别中实施并在许多地方使用.动态代理(和调用处理程序)只是用于拦截方法调用的粘合代码(由Spring提供).(实际上,动态代理只是此功能的一个实现细节.动态生成类是实现它的另一种可能性.)
| 归档时间: |
|
| 查看次数: |
27223 次 |
| 最近记录: |