Java 为什么Spring AOP需要代理类?

Java 为什么Spring AOP需要代理类?,java,spring,spring-aop,Java,Spring,Spring Aop,AOP中代理类的职责是什么?它的作用是什么?动态用于在bean的方法之前/之后执行额外的代码。最简单的例子是事务处理: spring围绕需要事务的bean创建一个代理 如果一个方法被声明为transactiona(例如,用@Transactional注释),则代理将启动一个新的事务并委托给真实的方法 实方法执行并返回 代理现在提交(或回滚)事务 因此,您的代码变得与事务无关。当一个事务bean被注入到另一个事务bean中时,实际上是被注入的代理(与您的bean的类型相同) 代理是动态的,因为

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

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

  • spring围绕需要事务的bean创建一个代理
  • 如果一个方法被声明为transactiona(例如,用
    @Transactional
    注释),则代理将启动一个新的事务并委托给真实的方法
  • 实方法执行并返回
  • 代理现在提交(或回滚)事务
因此,您的代码变得与事务无关。当一个事务bean被注入到另一个事务bean中时,实际上是被注入的代理(与您的bean的类型相同)

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

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

  • spring围绕需要事务的bean创建一个代理
  • 如果一个方法被声明为transactiona(例如,用
    @Transactional
    注释),则代理将启动一个新的事务并委托给真实的方法
  • 实方法执行并返回
  • 代理现在提交(或回滚)事务
因此,您的代码变得与事务无关。当一个事务bean被注入到另一个事务bean中时,实际上是被注入的代理(与您的bean的类型相同)


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

回答得好!这也可能有助于解释春季的代理:感谢Bozho的快速响应!这也可能有助于解释春季的代理:感谢Bozho的快速响应