系统开发必须处理数据,交易管理至关重要。Spring支持声明-Type交易,它是否通过@Transactions注释控制方法支持交易。基于AOP实施,基于AOP实施,脱离了特定的特定业务和商业逻辑*。
Spring提供了有关配置类(启动类)上支持交易的注释。目前,Spring将使用@Transaction注释自动扫描类和方法。注释等效于XML配置方法。通过设置模式属性,决定使用Spring Proxy或axpectj扩展。
@transactional注释可以应用于类别和方法。当声明该类时,默认情况下,注释用于类和子类的所有方法,并且有效地应用于公共方法;父类方法必须添加到相同的注释中,并且需要单独的声明。
特别注意:隔离和超时的两个属性仅对新推出的交易有效。它们设计用于使用繁殖和繁殖。
传播定义了交易的传播,总共7个级别。
区分嵌套和需求new之间的最根本区别在于,嵌套仍在交易中,但将其与主要事务提交。
在代理模式下易于省略的点(默认),仅拦截通过代理传递的外部方法调用。这意味着即使使用 @transactional标记了同一目标对象调用的内部方法,即在运行时不会导致交易拦截。
参考官方文件
Spring的隔离水平有5种类型,隔离水平的设置取决于当前数据库是否支持。
实际上,我非常担心这一点。通常,Springboot平台的开发通常是现在开发的。
当Springboot加载Spring.Factories时,它将加载交易类别类TransactionAutoconFiguration,该材料具有内部交易管理的配置。
当应用程序系统调用 @transactional的目标方法时,弹簧框架默认使用AOP代理,与AOP和Transaction Metadata(注释)结合使用,以在代码代码期间生成代理对象。根据 @transactions的属性配置信息,此代理对象确定对象对象。STATE @transactional的目标方法是否由Interceptor Transaction Interactionspector拦截。当Transaction Intercector截距时,将在目标方法开始执行和执行目标方法的逻辑之前创建和添加。最后,Manager AbstractPlatFormTranActionAger操作数据源数据源提交或回滚交易。
交易管理的框架由Abstract Transaction Manager AmpactPlatForansActionAger提供,并且特定的基础交易处理由PlatformTransActionsManager.Different Transaction Manager实施。DifferentTransaction Managers可以管理不同的数据资源DataAnterce,例如DataSourCortrions Manager,以管理JDBC连接。