Spring 与EJB 事务管理对比。
二者的相同点:
都提供了编程式和声明式事务支持。
二者的不同点:
spring 支持的是局部事务管理,也就是本地事务,不能用于多个事务性资源
EJB 支持全局事务管理,即可以管理多个事务性资源
尽管EJB 的事务管理似乎比spring 强大,我们在更多情况下用的也是spring 的事务管理,
除非有特殊的要求(例如:一个事务操作需要用到两个数据库),因为全局事务应该
由实现了JTA 的服务器管理(jboss, weblogic 等),因此也只能在服务器环境中才能使用。
一. spring 的声明式事务管理:
spring 的声明式事务管理是通过Spring AOP 实现的。
spring 提供了基于各种平台的事务管理器。首先需要在xml 文件中配置相应的事务管理器类。
如果直接使用JDBC 来完成应用程序的持久化,需要配置如下代码:
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
如果使用Hibernate3 来完成持久化&