zoukankan      html  css  js  c++  java
  • SSH框架——Sprign声明式事务

    Spring事务管理

      Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作。今天一起学习一下Spring的事务管理。Spring的事务管理分为声明式跟编程式。声明式就是在Spring的配置文件中进行相关配置;编程式就是用注解的方式写到代码里。下面先说声明式:

      Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、 TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为 SessionFactory,TransactionManager的实现为HibernateTransactionManager。

      下面一起看看声明式事务的具体配置:

      声明式事务

      公共的配置:

      

        用tx标签声明事务的方式:

      

          expression="execution(* news.dao.*.*(..))"
          其中第一个*代表返回值,第二*代表dao下子包,第三个*代表方法名,“(..)”代表方法参数。

        注:使用了springAO管理事务后,之前的dao中使用的opensession获取会话的方法需要改为getCurrentSession的方法获取会话,同时,在配置<tx:method>时需要把事务模式设置为REQUIRED。

    spring注解

      

        @Transactional [使用事务注解,告诉Spring当前位类中需要事务的开启和提交,注解代码位置可以出现在    类定义的前面或者方法上面]。

       @Transactional(readOnly=true) [使用事务注解,告诉Spring当前方法不需用到事务,只读]

        类定义的前面声明事务注解,个别不需用到事务的方法设置为只读。

        如图所示:

          

          在方法上声明事务注解,即每个方法上都进行事务注解的声明,如图所示:

        

        

      

        
      

          

  • 相关阅读:
    使用线程的场景
    进程和线程的区别
    线程基础
    Python程序中的进程操作-进程池(multiprocess.Pool)
    Python程序中的进程操作-进程间数据共享(multiprocess.Manager)
    Python程序中的进程操作-进程间通信(multiprocess.Queue)
    Python程序中的进程操作-进程同步(multiprocess.Lock)
    Python程序中的进程操作-开启多进程(multiprocess.process)
    关于<a>标签的onclick与href的执行顺序
    SQLServer2008不允许保存更改
  • 原文地址:https://www.cnblogs.com/joke-zheng/p/5971177.html
Copyright © 2011-2022 走看看