本篇内容介绍了“JavaSpring的两种事务是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Spring的事务控制可以分为编程式事务控制和声明式事务控制。编程式开发者直接把事务的代码和业务代码耦合到一起,在实际开发中不用。声明式开发者采用配置的方式来实现的事务控制,业务代码与事务代码实现解耦合,使用的AOP思想。PlatformTransactionManager接口,是spring的事务管理器接口,里面提供了我们常用的操作事务的方法。TransactionDefinition接口提供事务的定义信息(事务隔离级别、事务传播行为等等)(1)事务隔离级别设置隔离级别,可以解决事务并发产生的问题,如脏读、不可重复读和虚读(幻读)。注意:使用数据库默认级别,如果数据库是mysql,则默认是可重复读,oracle是读已提交。ISOLATION_DEFAULT
使用数据库默认级别ISOLATION_READ_UNCOMMITTED
读未提交ISOLATION_READ_COMMITTED
读已提交(可解决脏读问题)ISOLATION_REPEATABLE_READ
可重复读 (可解决脏读、不可重复读)ISOLATION_SERIALIZABLE
串行化可解决:(2)事务传播行为事务传播行为指的就是当一个业务方法【被】另一个业务方法调用时,应该如何进行事务控制。重点:read-only
(是否只读):建议查询时设置为只读timeout
(超时时间):默认值是-1,没有超时限制。如果有,以秒为单位进行设置TransactionStatus 接口提供的是事务具体的运免费云主机域名行状态。可以简单的理解三者的关系:事务管理器通过读取事务定义参数进行事务管理,然后会产生一系列的事务状态。Spring中的事务控制主要就是通过这三个API实现的PlatformTransactionManager
负责事务的管理,它是个接口,其子类负责具体工作TransactionDefinition
定义了事务的一些相关参数TransactionStatus
代表事务运行的一个实时状态理解三者的关系:事务管理器通过读取事务定义参数进行事务管理,然后会产生一系列的事务状态。在Spring配置文件中声明式的处理事务来代替代码式的处理事务。底层采用AOP思想来实现。声明式事务控制明确事项:核心业务代码(目标对象) (切入点是谁?)事务增强代码(Spring已提供事务管理器))(通知是谁?)切面配置(切面如何配置?)(切面 = 切入点 + 通知)使用spring声明式事务控制转账业务。步骤:1.引入tx命名空间2.事务管理器通知配置3.事务管理器AOP配置4.测试事务控制转账业务代码当使用spring声明式管理事务,要使用aop:advisor来进行aop的配置!事务参数的配置详解:name
:切点方法名称isolation
:事务的隔离级别propogation
:事务的传播行为timeout
:超时时间read-only
:是否只读步骤:修改service层,增加事务注解修改spring核心配置文件,开启事务注解支持核心配置类:数据源配置类:“JavaSpring的两种事务是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!
这篇文章主要介绍“swoole协程的适用场景是什么”,在日常操作中,相信很多人在swoole协程的适用场景是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”swool免费云主机域名e协程的适用场景是什么”的疑惑有所帮助!接下来…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。