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个或多个参数

     

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

  • 相关阅读:
    C#里partial关键字的作用
    Xamarin.Android之布局文件智能提示问题
    C语言文件操作
    CArray
    Unicode和多字节的相互转换
    可变参数问题研究
    VC6.0支持UNICODE的步骤
    Unicode编码表
    @@
    内存映射文件原理
  • 原文地址:https://www.cnblogs.com/feifeihu/p/2640427.html
Copyright © 2011-2022 走看看