zoukankan      html  css  js  c++  java
  • spring 事务控制

    spring支持编程式事务和声明式事务:

    编程式事务:是需要在方法中加入Spring的事务API 例如hibernate中的 beginTransaction() commit() rollback。。。。更加具有细粒度,但是同时也增加了代码的倾入性

    声明式事务:在配置文件中配置,无需程序员手动编程控制事务,也就是说数据库的事务的开启,提交都是框架帮助我们做好的,本质上是建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务--是spring所倡导的非侵入式的开发方式。一个普通的POJO对象,只要加上注解就可以获得完全的事务支持。

    两种方式比较:

    和编程式事务相比,声明式事务唯一不足地方是,后者的最细粒度只能作用到方法级别,无法做到像编程式事务那样可以作用到代码块级别。但是即便有这样的需求,也存在很多变通的方法,比如,可以将需要进行事务管理的代码块独立为方法等等

    声明式事务管理的两种方式:

    1.基于tx和aop命名空间的xml配置文件格式

    2.基于@Transaction注解 : @Transactional 可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性                                            

                  @Transactional 注解应该只被应用到 public 方法上,这是由 Spring AOP 的本质决定的。如果你在 protected、private  或者默认可见性的方法上使用 @Transactional 注解,这将被忽略,也不会抛出任何异常。

                   @Transactional 注解可以作用于接口、接口方法、类以及类方法上,但是 Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。

    spring+mybatis 多数据库事务管理:一个方法里面能同时对两个数据库的数据进行操作 :https://zhidao.baidu.com/question/1928811909233574387.html

    Spring Boot Druid 多数据源 Atomikos 分布式事务:https://blog.csdn.net/a510835147/article/details/75675311

  • 相关阅读:
    一个.NET通用JSON解析/构建类的实现(c#)
    WCF编程系列(六)以编程方式配置终结点
    WCF编程系列(三)地址与绑定
    WCF编程系列(一)初识WCF
    WCF编程系列(二)了解WCF
    SQL Server Management Studio 2005 打开的数据库是8.0的解决方法【原】
    GridView控件双击某行变色【整理】
    winform下comboBox控件绑定数据并设置其value【整理】
    网页上有错误,除了js,还有其他原因【原】
    Js将当前日期显示在浏览器的状态栏【搜藏】
  • 原文地址:https://www.cnblogs.com/zf201149/p/9243123.html
Copyright © 2011-2022 走看看