zoukankan      html  css  js  c++  java
  • Spring基于tx/aop声明式事务配置

    一、引入aop/tx命名空间

    <beans

        xmlns="http://www.springframework.org/schema/beans"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xmlns:aop="http://www.springframework.org/schema/aop"

        xmlns:tx="http://www.springframework.org/schema/tx"

        xsi:schemaLocation="http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

        http://www.springframework.org/schema/aop

        http://www.springframework.org/schema/aop/spring-aop-2.0.xsd

        http://www.springframework.org/schema/tx

        http://www.springframework.org/schema/tx/spring-tx-2.0.xsd ">

     

    二、基于tx/aop配置

    <!-- 事务管理器 -->

        <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

            <property name="sessionFactory">

                <ref bean="sessionFactory"/>

            </property>

        </bean>

        <!-- 通过aop定义事务增强切面 -->

        <aop:config>

            <aop:pointcut id="serviceMethod" expression="execution(* com.cj.transaction.service.*.*(..))"/>

            <aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice"/>

        </aop:config>

        <tx:advice id="txAdvice" transaction-manager="transactionManager">

            <tx:attributes>

                <tx:method name="find*" read-only="false"/>

                <tx:method name="add*" rollback-for="Exception"/>

            </tx:attributes>

        </tx:advice>

     

    expression="execution(* com.cj.transaction.service.*.*(..))"中几个通配符的含义:

    第一个 * —— 通配任意返回值类型
    第二个 * —— 通配com.cj.transaction.service下的任意class
    第三个 * —— 通配
    com.cj.transaction.service下的任意class的任意方法
    第四个 .. —— 通配方法可以有0个或多个参数

     

    注意:第一个*后面有一个空格

  • 相关阅读:
    [转] 百万级数据查询优化
    vs生成失败不报错
    C# 编译器错误对应代码详细信息
    使用XSL 样式表无法查看XML 输入。请更正错误然后单击刷新按钮
    vs中release模式调试和错误:CA0503:无法显示额外的代码分析警告或错误
    sp_executesql的用法
    一个for循环根据条件可以递增或递减
    Lc.exe已退出 代码为1
    将所有输出窗口文本重定向到即时窗口
    两步解决《内部服务器错误:500》
  • 原文地址:https://www.cnblogs.com/feifeihu/p/2640427.html
Copyright © 2011-2022 走看看