1.Spring对声明式事务管理的支持式通过它的AOP框架来实现的。
要在Spring应用中使用声明式事务,你得用TransactionProxyFactoryBean。
它的目的式将方法包装在事务的上下文中。
注意,这个对象有一个值为courseService的id。当应用从应用上下文里请求一个courseService时,
它将得到一个被TransactionProxyFactoryBean包裹的实例。而原来的courseService对象应该被重命名,否则对象id就会被冲突。
虽然可以取任何名字,但是公认的规范时继承目标对象的名字,并在被代理对象的名称后面加上"Target"。
在这里,取名为courseServiceTarget就很恰当。
2.Spring声明式事务(续)----Bean继承
如果应用有多个业务Bean,并且你注意到所有的都用同样的方法定义,并设定了相同的事务管理器和相同的事务属性源。这样看上去像配置了一大堆XML。如果能完全消除重复的TransactionProxyFactoryBean实例,那不是很好?
幸运的式,你可以。Spring提供两种方法抗击这个繁复的XML:1.Bean继承 2.AOP自动代理
如下为Bean继承的例子
这里采用的是Hibernate的事务管理器,
每种事务管理器都充当了对特定平台的事务实现的代理。
这样你就只要和Spring中的事务打交道,而不用关心实际上事务实现是什么样的。
附各类事务管理器: