spring对事务的控制 AOP
2013-03-13 19:13
309 查看
我解释一下(* com.evan.crm.service.*.*(..))中几个通配符的含义:
|第一个 * —— 通配 任意返回值类型|
|第二个 * —— 通配 包com.evan.crm.service下的任意class|
|第三个 * —— 通配 包com.evan.crm.service下的任意class的任意方法|
|第四个 .. —— 通配 方法可以有0个或多个参数|
包com.evan.crm.service下的任意class的具有任意返回值类型、任意数目参数和任意名称的方法
"execution(* cn..chapter9.service..*.*(..))"表示拦截cn包及子包下的chapter9. service包及子包下的任何类的任何方法;
" execution(* *..mo..*.*(..))"表示拦截所有包及其子包下的mo包及子包下的任意类的任意方法
<tx:advice/>
<tx:advice>:id用于指定此通知的名字, transaction-manager用于指定事务管理器,默认的事务管理器名字为“transactionManager”;
<tx:method>:用于定义事务属性即相关联的方法名;
name:定义与事务属性相关联的方法名,将对匹配的方法应用定义的事务属性,可以使用“*”通配符来匹配一组或所有方法,如“save*”将匹配以save开头的方法,而“*”将匹配所有方法;
propagation:事务传播行为定义,默认为“REQUIRED”,表示Required,其值可以通过TransactionDefinition的静态传播行为变量的“PROPAGATION_”后边部分指定,如“TransactionDefinition.PROPAGATION_REQUIRED”可以使用“REQUIRED”指定;
isolation:事务隔离级别定义;默认为“DEFAULT”,其值可以通过TransactionDefinition的静态隔离级别变量的“ISOLATION_”后边部分指定,如“TransactionDefinition. ISOLATION_DEFAULT”可以使用“DEFAULT”指定:
timeout:事务超时时间设置,单位为秒,默认-1,表示事务超时将依赖于底层事务系统;
read-only:事务只读设置,默认为false,表示不是只读;
rollback-for:需要触发回滚的异常定义,以“,”分割,默认任何RuntimeException 将导致事务回滚,而任何Checked Exception 将不导致事务回滚;异常名字定义和TransactionProxyFactoryBean中含义一样
no-rollback-for:不被触发进行回滚的 Exception(s);以“,”分割;异常名字定义和TransactionProxyFactoryBean中含义一样;
|第一个 * —— 通配 任意返回值类型|
|第二个 * —— 通配 包com.evan.crm.service下的任意class|
|第三个 * —— 通配 包com.evan.crm.service下的任意class的任意方法|
|第四个 .. —— 通配 方法可以有0个或多个参数|
包com.evan.crm.service下的任意class的具有任意返回值类型、任意数目参数和任意名称的方法
"execution(* cn..chapter9.service..*.*(..))"表示拦截cn包及子包下的chapter9. service包及子包下的任何类的任何方法;
" execution(* *..mo..*.*(..))"表示拦截所有包及其子包下的mo包及子包下的任意类的任意方法
<tx:advice/>
<tx:advice>:id用于指定此通知的名字, transaction-manager用于指定事务管理器,默认的事务管理器名字为“transactionManager”;
<tx:method>:用于定义事务属性即相关联的方法名;
name:定义与事务属性相关联的方法名,将对匹配的方法应用定义的事务属性,可以使用“*”通配符来匹配一组或所有方法,如“save*”将匹配以save开头的方法,而“*”将匹配所有方法;
propagation:事务传播行为定义,默认为“REQUIRED”,表示Required,其值可以通过TransactionDefinition的静态传播行为变量的“PROPAGATION_”后边部分指定,如“TransactionDefinition.PROPAGATION_REQUIRED”可以使用“REQUIRED”指定;
isolation:事务隔离级别定义;默认为“DEFAULT”,其值可以通过TransactionDefinition的静态隔离级别变量的“ISOLATION_”后边部分指定,如“TransactionDefinition. ISOLATION_DEFAULT”可以使用“DEFAULT”指定:
timeout:事务超时时间设置,单位为秒,默认-1,表示事务超时将依赖于底层事务系统;
read-only:事务只读设置,默认为false,表示不是只读;
rollback-for:需要触发回滚的异常定义,以“,”分割,默认任何RuntimeException 将导致事务回滚,而任何Checked Exception 将不导致事务回滚;异常名字定义和TransactionProxyFactoryBean中含义一样
no-rollback-for:不被触发进行回滚的 Exception(s);以“,”分割;异常名字定义和TransactionProxyFactoryBean中含义一样;
相关文章推荐
- spring的AOP事务控制不起作用的原因
- 杨老师课堂之springAOP事务控制源码解析
- 切面(aop)控制反转和依赖注入(IOC,DI)和spring的事务隔离和传播行为
- Spring AOP+事务控制
- Spring AOP控制事务
- spring 基于AOP事务控制实现的基础
- spring对事务的控制 AOP
- 27Spring_的事务管理_银行转账业务加上事务控制_基于tx.aop进行声明式事务管理
- spring 的aop控制事务
- 杨老师课堂之springAOP事务控制源码解析
- AOP和Spring事务处理
- spring-hibernate事务控制的4中方法
- Spring 2.0 AOP 与事务配置
- Spring中事务与aop的先后顺序问题
- Spring嵌套事务控制
- java+spring切面编程(aop)spring控制反转(ioc)+hibenrate对象关系映射(ORM) 学习网址
- spring学习笔记 -- day11 spring中的事务控制
- Spring中的事务控制(Transacion Management with Spring)
- 使用spring声明式事务,spring使用AOP来支持声明式事务,会根据事务属性,自动在方法调用之前决定是否开启一个事务,并在方法执行之后决定事务提交或回滚事务。
- Spring.Net学习 控制反转(IoC)和面向切面编程(AOP) (转)