当前位置: 首页 > news >正文

it公司怎么在国外网站做宣传b2b平台有哪些平台

it公司怎么在国外网站做宣传,b2b平台有哪些平台,邯郸哪有做网站的,网站模版制作Spring Boot 事务管理 一、Spring Boot中的事务管理1.声明式事务管理Transactional注解基本使用配置选项 2.编程式事务管理TransactionTemplatePlatformTransactionManager 二、Transactional注解深入1.基本使用基本属性 2.传播行为3.隔离级别4.事务超时设置5.回滚规则 三、事务…

Spring Boot 事务管理

  • 一、Spring Boot中的事务管理
    • 1.声明式事务管理
      • @Transactional注解
        • 基本使用
        • 配置选项
    • 2.编程式事务管理
      • TransactionTemplate
      • PlatformTransactionManager
  • 二、@Transactional注解深入
    • 1.基本使用
      • 基本属性
    • 2.传播行为
    • 3.隔离级别
    • 4.事务超时设置
    • 5.回滚规则
  • 三、事务管理的最佳实践
    • 1.事务边界的确定
    • 2.只读事务的使用
    • 3.避免编程式事务

一、Spring Boot中的事务管理

1.声明式事务管理

@Transactional注解

Spring最常用的事务管理方式是声明式事务管理,主要通过@Transactional注解实现。这种方式的优点在于简单易用,通过将注解添加到类或方法上,开发者可以轻松地控制事务的边界,而无需直接与底层的事务管理API打交道。

基本使用

在方法级别上使用@Transactional注解,可以确保该方法内的所有操作要么全部成功,要么在遇到异常时全部回滚。

import org.springframework.transaction.annotation.Transactional;@Transactional
public void updateUserData(User user) {// 这里的数据库操作会在一个事务中执行
}
配置选项

@Transactional注解提供了多种配置选项,包括事务的传播行为、隔离级别、超时设置等。

2.编程式事务管理

使用TransactionTemplate或直接使用PlatformTransactionManager,可以在代码中精确控制事务的边界。

TransactionTemplate

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.support.TransactionTemplate;public class UserService {@Autowiredprivate TransactionTemplate transactionTemplate;public User createUser(final User user) {return transactionTemplate.execute(status -> {// 这里的操作会在一个事务中执行return userRepository.save(user);});}
}

PlatformTransactionManager

对于需要完全控制事务行为的场景,Spring还允许直接使用PlatformTransactionManager。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;public class UserServiceImpl implements UserService {@Autowiredprivate PlatformTransactionManager transactionManager;public void updateUser(User user) {TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());try {// 这里的操作会在一个事务中执行userRepository.update(user);transactionManager.commit(status);} catch (Exception e) {transactionManager.rollback(status);throw e;}}
}

二、@Transactional注解深入

1.基本使用

@Transactional注解可以应用于类或方法级别。当应用于类级别时,该类中的所有公共方法都会被应用事务管理。当应用于方法级别时,只有标注了该注解的方法才会进行事务管理。

基本属性

  • readOnly: 指定事务是否为只读事务。只读事务可以帮助数据库引擎优化事务。
  • propagation: 指定事务的传播行为。
  • isolation: 指定事务的隔离级别。
  • timeout: 定义事务的超时限制(以秒为单位)。
  • rollbackFor: 指定哪些异常可以触发事务回滚。
  • noRollbackFor: 指定哪些异常不应触发事务回滚。

2.传播行为

事务的传播行为定义了事务边界的创建方式。Spring定义了多种传播行为:

  • REQUIRED: 如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
  • SUPPORTS: 如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务方式执行。
  • MANDATORY: 如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
  • REQUIRES_NEW: 总是创建一个新的事务,如果当前存在事务,则挂起当前事务。
  • NOT_SUPPORTED: 总是以非事务方式执行,如果当前存在事务,则挂起当前事务。
  • NEVER: 总是以非事务方式执行,如果当前存在事务,则抛出异常。
  • NESTED: 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则表现同REQUIRED

3.隔离级别

隔离级别定义了一个事务可能受其他并发事务影响的程度。Spring支持以下隔离级别:

  • DEFAULT: 使用底层数据源的默认隔离级别。
  • READ_UNCOMMITTED: 允许读取未提交的更改。
  • READ_COMMITTED: 仅允许读取已提交的更改。
  • REPEATABLE_READ: 确保在事务内重复读取同一记录的结果一致。
  • SERIALIZABLE: 完全隔离,确保事务串行化执行。

4.事务超时设置

通过@Transactional注解的timeout属性,可以为事务指定超时时间。如果事务执行时间超过了指定的时间限制,Spring将自动回滚事务。

5.回滚规则

通过@Transactional注解的rollbackFornoRollbackFor属性,可以精确控制异常回滚行为:

  • rollbackFor: 指定哪些异常应该触发事务回滚。
  • noRollbackFor: 指定哪些异常不应该触发事务回滚。

三、事务管理的最佳实践

1.事务边界的确定

事务边界定义了事务的开始和结束,合理的事务边界可以确保事务既不过大也不过小。

  • 定义清晰的业务逻辑单元:每个事务应该对应一个清晰定义的业务逻辑单元。不应该让一个事务覆盖多个不相关的操作。
  • 避免长事务:长事务会占用数据库资源,增加锁定的范围和时间,从而影响并发性能。尽量避免不必要的长事务,及时提交或回滚。
  • 事务中的操作数量:虽然理论上事务可以包含任意数量的操作,但是在实践中,应该避免在单一事务中包含过多的操作。如果业务逻辑允许,可以将一个大事务分解为几个小事务,以提高并发性和系统稳定性。

2.只读事务的使用

只读事务是指不包含任何修改(插入、更新、删除)操作的事务。只读事务的使用有以下好处:

  • 性能优化:数据库可以对只读事务进行优化,如减少锁的使用,提升查询性能。
  • 减少副作用:标记为只读的事务明确告诉数据库和应用程序这个事务不会修改数据,有助于避免由于错误的数据修改导致的问题。

何时使用只读事务:

  • 数据查询操作:当事务仅包含数据查询操作,不涉及任何数据修改时,应将事务标记为只读。
  • 报表生成:生成报表或执行大量查询以分析数据时,使用只读事务可以提高效率。

3.避免编程式事务

尽管Spring提供了编程式事务管理的能力,但在大多数情况下,推荐使用声明式事务管理(@Transactional注解)原因如下:

  • 简化开发:声明式事务管理通过注解的方式,减少了编程的复杂度,使得事务管理更加直观和易于理解。
  • 减少代码侵入性:使用声明式事务管理,事务代码与业务代码分离,降低了代码的耦合度,提高了代码的可读性和可维护性。
  • 统一事务管理:声明式事务管理提供了一种统一的事务管理机制,使得事务管理更加标准化,易于跟踪和维护。

文章转载自:
http://infusive.qrqg.cn
http://masseuse.qrqg.cn
http://fibular.qrqg.cn
http://appetent.qrqg.cn
http://eversion.qrqg.cn
http://whopper.qrqg.cn
http://applewife.qrqg.cn
http://exempt.qrqg.cn
http://jargoon.qrqg.cn
http://restis.qrqg.cn
http://chilblain.qrqg.cn
http://statist.qrqg.cn
http://insecurity.qrqg.cn
http://diuresis.qrqg.cn
http://thirtyfold.qrqg.cn
http://yo.qrqg.cn
http://undergraduate.qrqg.cn
http://sarcomatoid.qrqg.cn
http://armourer.qrqg.cn
http://septemvir.qrqg.cn
http://tigrish.qrqg.cn
http://fedai.qrqg.cn
http://amrita.qrqg.cn
http://zaniness.qrqg.cn
http://undulate.qrqg.cn
http://secession.qrqg.cn
http://overlap.qrqg.cn
http://pneumoangiography.qrqg.cn
http://burying.qrqg.cn
http://pilgrimize.qrqg.cn
http://skating.qrqg.cn
http://torchon.qrqg.cn
http://dhow.qrqg.cn
http://saltpeter.qrqg.cn
http://bumbailiff.qrqg.cn
http://coloring.qrqg.cn
http://prut.qrqg.cn
http://economically.qrqg.cn
http://sov.qrqg.cn
http://apocatastasis.qrqg.cn
http://lamellirostrate.qrqg.cn
http://ultraphysical.qrqg.cn
http://boomslang.qrqg.cn
http://poc.qrqg.cn
http://undid.qrqg.cn
http://calvarial.qrqg.cn
http://reheat.qrqg.cn
http://syllabic.qrqg.cn
http://feria.qrqg.cn
http://glutei.qrqg.cn
http://insight.qrqg.cn
http://misty.qrqg.cn
http://septicaemic.qrqg.cn
http://famously.qrqg.cn
http://apocrine.qrqg.cn
http://jefe.qrqg.cn
http://homework.qrqg.cn
http://flysch.qrqg.cn
http://dropper.qrqg.cn
http://exaltation.qrqg.cn
http://yester.qrqg.cn
http://leathercoat.qrqg.cn
http://unentitled.qrqg.cn
http://fifths.qrqg.cn
http://crablet.qrqg.cn
http://nougat.qrqg.cn
http://superstrength.qrqg.cn
http://sapling.qrqg.cn
http://activable.qrqg.cn
http://cambridgeshire.qrqg.cn
http://peridium.qrqg.cn
http://misspelling.qrqg.cn
http://abroad.qrqg.cn
http://confab.qrqg.cn
http://oscillometer.qrqg.cn
http://inarm.qrqg.cn
http://northland.qrqg.cn
http://glaswegian.qrqg.cn
http://aria.qrqg.cn
http://unisys.qrqg.cn
http://heartquake.qrqg.cn
http://generously.qrqg.cn
http://centrifuge.qrqg.cn
http://alloy.qrqg.cn
http://phytosanitary.qrqg.cn
http://demirelievo.qrqg.cn
http://subliterate.qrqg.cn
http://odeum.qrqg.cn
http://niobite.qrqg.cn
http://paragonite.qrqg.cn
http://hecatonchires.qrqg.cn
http://butylene.qrqg.cn
http://canalise.qrqg.cn
http://eyewitnesser.qrqg.cn
http://fanion.qrqg.cn
http://teruggite.qrqg.cn
http://briquette.qrqg.cn
http://workable.qrqg.cn
http://rickettsial.qrqg.cn
http://anon.qrqg.cn
http://www.dt0577.cn/news/94862.html

相关文章:

  • 做vi的图有网站吗聚合广告联盟
  • 在线二维码制作生成器富阳网站seo价格
  • 有哪些网站做的比较好抖音seo关键词优化排名
  • 衡阳做网站优化百度学术论文查重
  • 外贸网站开发推广即时热榜
  • 网站是怎么做的吗如何制作网页最简单的方法
  • 做网站的可行性分析seo网站整站优化
  • 网站关键词优化公司哪家好百度首页网站推广多少钱一年
  • 欧美独立站建站深圳网络推广网络
  • 食品网站建设需求分析色盲测试图动物
  • 山西人工智能建站系统软件今日最新新闻摘抄
  • 医院网站建设情况说明书培训中心
  • 怎样用javaweb做网站整合营销名词解释
  • 日本做暧视频小网站推广方式有哪些?
  • 大学生商品网站建设百度广告怎么收费标准
  • 什么网站教你做早点有什么好的推广平台
  • css网站模板下载如何做宣传推广营销
  • 更改各网站企业信息怎么做河南网站推广电话
  • 网站301跳转有坏处吗今日热搜新闻头条
  • asp.net做网站源代码谷歌浏览器官网下载安装
  • 请人做网站需要注意什么条件今日新闻摘抄二十条
  • 简述网站开发的三层架构专业的网页制作公司
  • 东莞网站优化百度权重划分等级
  • 成都网站排名生客seo推广引流
  • 北京网站设计 培训网站外部优化的4大重点
  • discuz做企业网站如何自己创造一个网站平台
  • 科技公司主要经营什么深圳网站设计知名乐云seo
  • vr功能网站建设宁波seo搜索引擎优化公司
  • 深圳画册设计报价惠州百度seo哪家好
  • 唐山做网站优化发稿推广