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

spring日志(七):声明式事务机制

2013-04-09 
spring日记(七):声明式事务机制/关于@Transactional的属性:* propagation:事务传播行为,例如:@Transactio

spring日记(七):声明式事务机制
/>

关于@Transactional的属性:

* propagation:事务传播行为,例如:@Transactional(propagation=Propagation.REQUIRES_NEW)

* isolation:事务隔离级别,例如:@Transactional(isolation=Isolation.READ_COMMITTED)

* readOnly:事务读写性,boolean型

* timeout:超时时间秒

* rollbackFor:一组异常类,遇到就回滚类型为:Class<? extends Throwable>[],默认为{},例如:@Transactional(rollbackFor={SQLException.class, IOException.lcass})

* rollbackForClassNmae:一组异常类名字

* noRollbackFor:一组异常类,遇到不回滚

* noRollbackForClassName:一组异常类型的名字,遇到不回滚

>> 多线程的困惑

单实例Bean的最大好处是线程无关性,不存在多线程并发访问的问题,也就是线程安全的。而一个类能够以单实例的方式运行的前提是无状态,也就是说该类不能有状态化的成员变量。我们知道传统的DAO必须持有一个Connection,而Connection即使状态化的对象。但spring通过ThreadLocal将有状态的变量Connection本地线程化,达到另一个层面上的线程无关从而实现线程安全。

>> 不能被spring AOP事务增强的方法:

基于接口的动态代理了:public之外的所有方法(还包括public static方法)

基于CGLib的动态代理:private、static、final(这个要特别注意了)

热点排行