关于spring的事务传播特性,spring常用事务传播行为

  关于spring的事务传播特性,spring常用事务传播行为

  00-1010为什么需要事务Spring来声明事务事务参数描述propagationisolationtimeout事务回滚失效解决方案@事务工作原理为什么需要Spring事务的事务传播机制?沟通机制的类型

  00-1010事务是将一组操作封装成一个执行单元,要么全部成功,要么全部失败。如果没有事务,传输操作就会异常,所以需要保证原子性。

  00-1010只能通过在方法中添加@Transactional注释来实现。不需要手动启动和提交事务,如果中途出现异常,事务会自动回滚。@Transactional既可以修饰方法也可以修饰类,修饰方法只能修饰公共方法。注意:@Transactional在捕获到异常的情况下,事务不会自动回滚@ Transactional(isolation=isolation . read _ committed)//open Transaction @ request mapping(/insert )public int insert(){ userinfo userinfo=new userinfo();userinfo . setname( AOP );userinfo . set password( 123456 );返回userservice . add(userInfo);} @ transactional(isolation=isolation . read _ committed)//open transaction @ request mapping(/insert 2 )public int insert 2(){ userinfo userinfo=new userinfo();userinfo . setname( AOP );userinfo . set password( 123456 );int result=userservice . add(userInfo);system . out . println( MySQL影响的行数: result );int num=10/0;返回结果;}

  

目录

 

  00-1010事务的传播行为,默认为传播。需要

  

为什么需要事务

Spring有五个隔离级别,MySQL有四个隔离级别,Spring多了一个默认,主要针对连接数据库的事务隔离级别。

 

  00 -1010表示事务超时,默认值为-1。如果事务执行时间超过超时,将自动回滚。

  00-1010直接抛出异常

  @ transactional(propagation=propagation . required)//open transaction @ request mapping(/insert 2 )public int insert 2(){ userinfo userinfo=new userinfo();userinfo . setname( AOP );userinfo . set password( 123456 );int result=userservice . add(userInfo);system . out . println( MySQL影响的行数: result );请尝试{ int num=10/0;}catch(异常e){ result=0;e . printstacktrace();扔e;//解决事务失效问题//TransactionAspectSupport。CurrentTransactionStatus()。SetRollBackOnly();}返回结果;}使用catch中的代码手动回滚事务。

  @ transactional(propagation=propagation . required)//open transaction @ request mapping(/insert 2 )public int insert 2(){ userinfo userinfo=new userinfo();userinfo . setname( AOP );userinfo . set password( 123456 );int result=userservice . add(userInfo);system . out . println( MySQL影响的行数: result );请尝试{ int num=10/0;}catch(异常e){ result=0;e . printstacktrace();//抛出e;//解决事务失效问题TransactionAspectSupport。CurrentTransactionStatus()。SetRollBackOnly();}返回结果;}

  

Spring 声明事务

@Transactional基于AOP实现,使用动态代理实现。如果目标对象实现接口,默认情况下将采用JDK的动态代理。如果目标对象没有实现接口,将使用CGLIB动态代理。

 

  @Transactional在开始业务之前,通过代理打开交易,执行成功后再提交交易。如果中途遇到异常,事务将回滚。

  00-1010定义:当多个事务在Spring中互相调用时,它们是如何表现的?

  00-1010事务的隔离级别保证了多个并发事务的可控性(稳定性),而事务传播机制则保证了一个事务在多个调用方法之间的可控性。

  

Transactional参数说明

 

  嵌套事务和联接事务的区别

  如果整个交易执行成功,则两个交易的结果相同;如果事务执行中途失败,加入事务后将回滚整个事务;但是,嵌套事务将在本地回滚,这不会影响前面方法中执行的结果。关于Spring对事务和事务传播机制的超详细解释的这篇文章到此为止。有关春季交易的更多信息,请搜索《大众IT》的往期文章或继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • spring编程式事务处理,spring编程事务
  • spring编程式事务处理,spring编程事务,详解Spring学习之编程式事务管理
  • spring的核心功能模块有几个,列举一些重要的spring模块
  • spring的核心功能模块有几个,列举一些重要的spring模块,七个Spring核心模块详解
  • spring注解和springmvc的注解,SpringMVC常用注解
  • spring注解和springmvc的注解,SpringMVC常用注解,详解springmvc常用5种注解
  • spring实现ioc的四种方法,spring的ioc的三种实现方式
  • spring实现ioc的四种方法,spring的ioc的三种实现方式,简单实现Spring的IOC原理详解
  • spring事务失效问题分析及解决方案怎么做,spring 事务失效情况
  • spring事务失效问题分析及解决方案怎么做,spring 事务失效情况,Spring事务失效问题分析及解决方案
  • spring5.0新特性,spring4新特性
  • spring5.0新特性,spring4新特性,spring5新特性全面介绍
  • spring ioc以及aop原理,springmvc aop原理
  • spring ioc以及aop原理,springmvc aop原理,深入浅析Spring 的aop实现原理
  • Spring cloud网关,spring cloud zuul作用
  • 留言与评论(共有 条评论)
       
    验证码: