春天 - 幕后花絮

时间:2011-01-26 06:55:11

标签: spring transactions proxy

当我们代理对象时,场景背后会发生什么。比方说,我说bean id =“bookService”是指Spring的TransactionProxyFactoryBean类。

TransactionProxyFactoryBean的target属性指向BookServiceImpl类。所以BookServiceImpl(这是BookService接口的一个实现)正在被代理。 但这里发生了什么?此TransactionProxyFacotoryBean类是否扩展了代理的目标?

如果是这样,TransactionProxyFactoryBean子类本身是否来自BookServiceImpl(实现)或BookService(接口)?

1 个答案:

答案 0 :(得分:0)

TransactionProxyFactoryBean将创建一个代理。它本身不是代理人。

此代理将处理对bean的调用,对于已配置为应用事务的方法,将调用TransactionInterceptor,它将启动事务,调用bean的方法,然后结束事务。

如果您有proxyTargetClass =“true”,那么代理将是该类的子类型(使用CGLIB)。否则,代理将是目标类实现的接口的子类型。

相关问题