首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

spring的事宜

2012-09-05 
spring的事务Spring框架其中的一个优点是它全面的事务支持,其好处有:为复杂的事务API提供了一致的编程模型

spring的事务

Spring框架其中的一个优点是它全面的事务支持,其好处有:

  1. 为复杂的事务API提供了一致的编程模型,如JTA、JDBC、Hibernate、JPA和JDO
  2. 支持声明式事务管理
  3. 更易于使用的编程式事务管理API
  4. 很好的整合Spring的各种数据访问抽象

???? 传统来说,J2EE有两个事务有两种选择:?全局和本地?.
???? 全局事务由应用服务器管理,使用JTA。
??????????? 其主要限制在于, 通常需要将JTA、JNDI同时使用,因为通常JTA的UserTransaction是通过JNDI获得的。
???? 局部事务和资源相关的,比如和一个JDBC链接关联的事务。
??????????? 其限制在于它们不能同事用于多个事务性资源。例如,使用JDBC连接事务管理的代码不能用于全局的JTA事务中。另外一个缺点是 局部事务趋向于入侵式编程模型。

? ? ? ?Spring解决了这方面的问题,它让开发者能够使用在 任何环境下使用一致的编程模型。它同时提供声明式和编程式事务管理。 事务管理是多数使用者的首选,推荐使用!

局部事务的定义

???? 通常,我们需要先定义一个DataSource,然后使用Spring的DataSourceTransactionManager,并传入指向DataSource的引用:


这里需要说一下 TransactionStatus对象,它代表一个新的或已经存在的事务.

??

/>

transaction-manager 属性的默认值是 transactionManager,如果事务管理器 Bean 的名字即为该值,则可以省略该属性。
虽然 @Transactional 注解可以作用于接口、接口方法、类以及类方法上,但建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。另外, @Transactional 注解应该只被应用到 public 方法上,否则将被忽略,也不会抛出任何异常。

基于 <tx> 命名空间和基于 @Transactional 的事务声明方式各有优缺点。
基于 <tx> 的方式,其优点是与切点表达式结合,功能强大。利用切点表达式,一个配置可以匹配多个方法,
而基于 @Transactional 的方式必须在每一个需要使用事务的方法或者类上用 @Transactional 标注,尽管可能大多数事务的规则是一致的,但是对 @Transactional 而言,也无法重用,必须逐个指定。
另一方面,基于 @Transactional 的方式使用起来非常简单明了,没有学习成本。开发人员可以根据需要,任选其中一种使用,甚至也可以根据需要混合使用这两种方式。

热点排行