请描述一下spring的事务
声明式事务管理的定义:用在spring配置文件中声明式的处理事务来代替代码式的处理事务。这样的好处是,事务管理不侵入开发的组件,具体来说,业务逻辑对象就不会意识到正在事务管理之中,事实上也应该如此,因为事务管理是属于系统层面的服务,而不是业务逻辑的一部分,如果想要改变事务管理策划的话,也只需要在定义文件中重新配置即可,这样维护起来极其方便。
基于TransactionInterceptor 的声明式事务管理:两个次要的属性:transactionManager,用来指定一个事务治理器,并将具体事务相关的操作请托给它;其他一个是Properties
类型的transactionAttributes 属性,该属性的每一个键值对中,键制定的是方法名,方法名可以行使通配符,而值就是表现呼应方法的所运用的事务属性。
<beans...>
.....
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref=“transactionManager”/>
<property name="transactionAttributes">
<props>
<prop key="transfer">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="bankService" class=“org。springframework.aop.framework.ProxyFactoryBean”>
<property name="target" ref="bankServiceTarget"/>
<property name="interceptorNames">
<list>
<iderf bean="transactionInterceptor"/>
</list>
</property>
</bean>
.....
</beans>
基于TransactionProxyFactoryBean 的声明式事务管理:设置配置文件与先前比照简化了许多。我们把这类设置配置文件格式称为 spring 经典的声明式事务治理