第3章 事务配置(1)

事务配置方式

1)注解方式 @Transational 配合
2)配置方式(applicationContext.xml里配置通用事务),应用的是spring aop aspect技术。参考spring手册17.3 20.4.3 部分
http://www.cnblogs.com/yepei/p/4716112.html

1)xml配置声明式事务

(applicationContext.xml里配置通用事务),应用的是spring aop aspect技术。参考spring手册20.4.3部分

    

    

    


   
   
   





 








 

2)注解声明式事务

@Transational 配合
注解可以写到接口上,接口的方法上,类上,类的方法上。
但是spring不建议用在接口或接口的方法上,因为如果写在接口上,那么只有基于接口的代理时才会生效。
所以我们把该注解写在类上,或者类的方法上。
如果写在类上,他是对类里所有的公有(public修饰的)方法生效。
如果写在方法上,只对该方法生效。

注意:默认情况下,只有来自外部的方法调用才会被AOP代理捕获,也就是,类内部方法调用本类内部的其他方法并不会引起事务行为,即使被调用方法使用@Transactional注解进行修饰。
注意:一般在service层加事务。

配置部分:

在上面配置的基础上,增加如下配置



代码实例

@Transactional(readOnly = true)
public class DefaultFooService implements FooService {
 
  public Foo getFoo(String fooName) {
    // do something
  }
 
  // these settings have precedence for this method
  //方法上注解属性会覆盖类注解上的相同属性
  @Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
  public void updateFoo(Foo foo) {
    // do something
  }
}

你可能感兴趣的:(第3章 事务配置(1))