0

AOP 中代理类的职责是什么?它的作用是什么?

4

1 回答 1

5

动态代理用于在 bean 的方法之前/之后执行附加代码。最简单的例子是事务处理:

  • spring 在需要事务的 bean周围创建一个代理
  • 如果一个方法被声明为事务a(例如用 注释@Transactional)代理启动一个新事务并委托给真正的方法
  • 真正的方法执行并返回
  • 代理现在提交(或回滚)事务

因此,您的代码变得与事务无关。当一个事务 bean 被注入另一个事务 bean 时,它实际上是被注入的代理(它与你的 bean 的类型相同)

并且代理是动态的,因为 spring 在编译时不知道所有 bean 的类型,所以它必须在运行时创建代理。

于 2010-09-13T08:48:12.650 回答