zoukankan      html  css  js  c++  java
  • Java--通过Spring AOP进行事务管理

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    
       <!-- Initialization for data source -->
       <bean id="dataSource" 
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">
          <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
          <property name="url" value="jdbc:mysql://localhost:3306/TEST"/>
          <property name="username" value="root"/>
          <property name="password" value="cohondob"/>
       </bean>
       <!-- Initialization for TransactionManager -->
       <bean id="transactionManager"
       class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          <property name="dataSource"  ref="dataSource" />    
       </bean>
       <tx:advice id="txAdvice"  transaction-manager="transactionManager">
          <tx:attributes>
          <tx:method name="create"/>
          </tx:attributes>
       </tx:advice>
    
       <aop:config>
          <aop:pointcut id="createOperation" 
          expression="execution(* com.tutorialspoint.StudentJDBCTemplate.create(..))"/>
          <aop:advisor advice-ref="txAdvice" pointcut-ref="createOperation"/>
       </aop:config>
    
       <!-- Definition for studentJDBCTemplate bean -->
       <bean id="studentJDBCTemplate"  
       class="com.tutorialspoint.StudentJDBCTemplate">
          <property name="dataSource"  ref="dataSource" />  
       </bean>
    
    </beans>
    <?xml version="1.0" encoding="UTF-8"?>  
      
    <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"  
        xmlns:context="http://www.springframework.org/schema/context"  
        xsi:schemaLocation="http://www.springframework.org/schema/beans  
                         http://www.springframework.org/schema/beans/spring-beans.xsd  
                         http://www.springframework.org/schema/tx  
                         http://www.springframework.org/schema/tx/spring-tx.xsd  
                         http://www.springframework.org/schema/aop  
                         http://www.springframework.org/schema/aop/spring-aop.xsd "  
    >  
      
    <bean id="transactionManager"  
            class="org.springframework.orm.hibernate3.HibernateTransactionManager"  
            abstract="false" lazy-init="default" autowire="default"  
            dependency-check="default">  
            <property name="sessionFactory">  
                <ref bean="sessionFactory" />  
            </property>  
        </bean>  
        <tx:advice id="txAdvice" transaction-manager="transactionManager">  
            <tx:attributes>  
                <tx:method name="add*" propagation="REQUIRED" />  
                <tx:method name="delete*" propagation="REQUIRED" />  
                <tx:method name="update*" propagation="REQUIRED" />  
                <tx:method name="add*" propagation="REQUIRED" />  
                <!-- <tx:method name="*" propagation="true" />-->  
            </tx:attributes>  
      
        </tx:advice>  
      
        <aop:config>  
            <aop:pointcut id="allManagerMethod"  
                expression="execution(* com.service.*.*(..))" />  
            <aop:advisor advice-ref="txAdvice"  
                pointcut-ref="allManagerMethod" />  
        </aop:config>  
    </beans>  

    我解释一下(* com.evan.crm.service.*.*(..))中几个通配符的含义: 

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

    转自:http://baobao707.iteye.com/blog/415446

    http://wiki.jikexueyuan.com/project/spring/transaction-management/spring-declarative-transaction-management.html

  • 相关阅读:
    ftp连接
    Excel表格内容导出到页面
    jquery 元素前或插入一元素
    sql 查出相同的记录 并把相同记录 显示在一起
    ie 使用window.open页面报错
    java生成word文档
    myeclipse导入项目
    java生成临时文件夹和删除临时文件夹
    正则学习笔记
    React和Vue的组件更新比较
  • 原文地址:https://www.cnblogs.com/eoss/p/5912485.html
Copyright © 2011-2022 走看看