• spring对事务的控制 AOP


    我解释一下(* 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中含义一样;

  • 相关阅读:
    最流行的javascript 代码规范
    jquery里阻止冒泡ev.stopPropagation()
    jquery里阻止冒泡ev.stopPropagation()
    响应式页面设计原理
    fromCharCode()的用法
    slice的用法
    java 反转数组
    java 一个数组的长度
    Java访问数组
    java 数组的定义
  • 原文地址:https://www.cnblogs.com/javahuang/p/2958146.html
Copyright © 2020-2023  润新知