zoukankan      html  css  js  c++  java
  • 通用Mapper

    1:spring声明式事务详解

     1 <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
     2          <!--  创建事务管理器, 管理sessionFactory(因为所有的session都是从sessionFactory获取的) -->
     3          <property name="sessionFactory" ref="sessionFactory" />
     4      </bean>
     5     <!--  配置通知, 那些方法需要切入什么类型的事务 -->     
     6     <tx:advice id="advice" transaction-manager="transactionManager">
     7          <tx:attributes>
     8              <tx:method name="add*" propagation="REQUIRED"/>
     9              <tx:method name="del*" propagation="REQUIRED"/>
    10              <tx:method name="update*" propagation="REQUIRED"/>
    11              <tx:method name="*" propagation="SUPPORTS" read-only="true"/>
    12          </tx:attributes>
    13      </tx:advice>
    14      
    15      <!-- 配置切面表达式, 并且让 tx与切面表达式合二为一 -->
    16      <aop:config>
    17          <!-- 表达式, 定义哪个包的哪些类需要切入事务,但是此处并且没有制定类中哪些方法,需要切入什么样 事务 -->
    18          <aop:pointcut expression="execution(* news.service.*.*(..))" id="pointcut" />
    19          <aop:advisor advice-ref="advice" pointcut-ref="pointcut"/>
    20      </aop:config>

    1、创建事务管理器

    2、配置通知      advice:通知。

     

    <tx:attributes>中的设置

    3、配置切面表达式, 并且让 tx与切面表达式合二为一     config:配置

    1 我解释一下execution(* news.service.*.*(..))"中几个通配符的含义:
    2 
    3 第一个 * —— 通配 任意返回值类型
    4 第二个 * —— 通配 包news.service下的任意class
    5 第三个 * —— 通配 包news.service下的任意class的任意方法
    6 第四个 .. —— 通配 方法可以有0个或多个参数
    7 
    8 综上:包news.service下的任意class的具有任意返回值类型、任意数目参数和任意名称的方法
  • 相关阅读:
    Windows删除git本地记住的密码
    C++ fmt库的安装和测试
    仿照struct is_integral 实现struct not_int
    folly库net库udp小例子
    Java阻塞队列BlockingQueue
    正则表达式必知必会摘要
    正则表达式匹配IP地址
    SimpleDateFormat线程安全性测试与解决方案
    Java8 HashMap中哈希桶(table)数组的索引位置
    socket网络编程--基础应用篇
  • 原文地址:https://www.cnblogs.com/bulrush/p/8650300.html
Copyright © 2011-2022 走看看