spring 声明式事务配置

< bean  id ="txManager"  class ="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
         < property  name ="dataSource"  ref ="dataSource" />
     </ bean >
     < aop:config >
         < aop:pointcut  id ="baseServiceMethods"
            expression ="execution(* com.test.service.*.*(..))"   />
         < aop:advisor  advice-ref ="txAdvice"
            pointcut-ref ="baseServiceMethods"   />
     </ aop:config >
     < aop:aspectj-autoproxy  />
     < tx:advice  id ="txAdvice"  transaction-manager ="txManager" >
         < tx:attributes >
             < tx:method  name ="select*" read-only ="true"/>
             < tx:method  name ="find*" read-only ="true"/>
             < tx:method  name ="save*" rollback-for="ServletException,SQLException"/>
             < tx:method  name ="update*" rollback-for="ServletException,SQLException"/>
             < tx:method  name ="add*" prollback-for="ServletException,SQLException"/>
             < tx:method  name ="delete*" rollback-for="ServletException,SQLException" />
         </ tx:attributes >
     </ tx:advice >

========================================================================
expression ="execution(* com.test.service.*.*(..))
第一个*代表所有的返回值类型
第二个*代表所有的类
第三个*代表类所有方法
最后一个..代表所有的参数

<tx:method/> 相关的属性:
propagation表示事务传播行为,默认为REQUIRED;
isolation表示事务隔离级别,默认为DEFAULT;
read-only表示事务是否只读,默认为false;
rollback-for表示将被触发进行回滚的异常,多个异常以逗号分开;
timeout表示事务超时的时间(以秒为单位),默认为-1;

你可能感兴趣的:(spring)