中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

it公司怎么在國外網(wǎng)站做宣傳建設(shè)網(wǎng)站制作

it公司怎么在國外網(wǎng)站做宣傳,建設(shè)網(wǎng)站制作,網(wǎng)站建設(shè)專員一定要會網(wǎng)站建設(shè)嗎,wordpress做CDN后后臺進(jìn)不去Spring Boot 事務(wù)管理 一、Spring Boot中的事務(wù)管理1.聲明式事務(wù)管理Transactional注解基本使用配置選項(xiàng) 2.編程式事務(wù)管理TransactionTemplatePlatformTransactionManager 二、Transactional注解深入1.基本使用基本屬性 2.傳播行為3.隔離級別4.事務(wù)超時(shí)設(shè)置5.回滾規(guī)則 三、事務(wù)…

Spring Boot 事務(wù)管理

  • 一、Spring Boot中的事務(wù)管理
    • 1.聲明式事務(wù)管理
      • @Transactional注解
        • 基本使用
        • 配置選項(xiàng)
    • 2.編程式事務(wù)管理
      • TransactionTemplate
      • PlatformTransactionManager
  • 二、@Transactional注解深入
    • 1.基本使用
      • 基本屬性
    • 2.傳播行為
    • 3.隔離級別
    • 4.事務(wù)超時(shí)設(shè)置
    • 5.回滾規(guī)則
  • 三、事務(wù)管理的最佳實(shí)踐
    • 1.事務(wù)邊界的確定
    • 2.只讀事務(wù)的使用
    • 3.避免編程式事務(wù)

一、Spring Boot中的事務(wù)管理

1.聲明式事務(wù)管理

@Transactional注解

Spring最常用的事務(wù)管理方式是聲明式事務(wù)管理,主要通過@Transactional注解實(shí)現(xiàn)。這種方式的優(yōu)點(diǎn)在于簡單易用,通過將注解添加到類或方法上,開發(fā)者可以輕松地控制事務(wù)的邊界,而無需直接與底層的事務(wù)管理API打交道。

基本使用

在方法級別上使用@Transactional注解,可以確保該方法內(nèi)的所有操作要么全部成功,要么在遇到異常時(shí)全部回滾。

import org.springframework.transaction.annotation.Transactional;@Transactional
public void updateUserData(User user) {// 這里的數(shù)據(jù)庫操作會在一個(gè)事務(wù)中執(zhí)行
}
配置選項(xiàng)

@Transactional注解提供了多種配置選項(xiàng),包括事務(wù)的傳播行為、隔離級別、超時(shí)設(shè)置等。

2.編程式事務(wù)管理

使用TransactionTemplate或直接使用PlatformTransactionManager,可以在代碼中精確控制事務(wù)的邊界。

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 -> {// 這里的操作會在一個(gè)事務(wù)中執(zhí)行return userRepository.save(user);});}
}

PlatformTransactionManager

對于需要完全控制事務(wù)行為的場景,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 {// 這里的操作會在一個(gè)事務(wù)中執(zhí)行userRepository.update(user);transactionManager.commit(status);} catch (Exception e) {transactionManager.rollback(status);throw e;}}
}

二、@Transactional注解深入

1.基本使用

@Transactional注解可以應(yīng)用于類或方法級別。當(dāng)應(yīng)用于類級別時(shí),該類中的所有公共方法都會被應(yīng)用事務(wù)管理。當(dāng)應(yīng)用于方法級別時(shí),只有標(biāo)注了該注解的方法才會進(jìn)行事務(wù)管理。

基本屬性

  • readOnly: 指定事務(wù)是否為只讀事務(wù)。只讀事務(wù)可以幫助數(shù)據(jù)庫引擎優(yōu)化事務(wù)。
  • propagation: 指定事務(wù)的傳播行為。
  • isolation: 指定事務(wù)的隔離級別。
  • timeout: 定義事務(wù)的超時(shí)限制(以秒為單位)。
  • rollbackFor: 指定哪些異??梢杂|發(fā)事務(wù)回滾。
  • noRollbackFor: 指定哪些異常不應(yīng)觸發(fā)事務(wù)回滾。

2.傳播行為

事務(wù)的傳播行為定義了事務(wù)邊界的創(chuàng)建方式。Spring定義了多種傳播行為:

  • REQUIRED: 如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒有事務(wù),則創(chuàng)建一個(gè)新的事務(wù)。
  • SUPPORTS: 如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒有事務(wù),則以非事務(wù)方式執(zhí)行。
  • MANDATORY: 如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒有事務(wù),則拋出異常。
  • REQUIRES_NEW: 總是創(chuàng)建一個(gè)新的事務(wù),如果當(dāng)前存在事務(wù),則掛起當(dāng)前事務(wù)。
  • NOT_SUPPORTED: 總是以非事務(wù)方式執(zhí)行,如果當(dāng)前存在事務(wù),則掛起當(dāng)前事務(wù)。
  • NEVER: 總是以非事務(wù)方式執(zhí)行,如果當(dāng)前存在事務(wù),則拋出異常。
  • NESTED: 如果當(dāng)前存在事務(wù),則在嵌套事務(wù)內(nèi)執(zhí)行。如果當(dāng)前沒有事務(wù),則表現(xiàn)同REQUIRED。

3.隔離級別

隔離級別定義了一個(gè)事務(wù)可能受其他并發(fā)事務(wù)影響的程度。Spring支持以下隔離級別:

  • DEFAULT: 使用底層數(shù)據(jù)源的默認(rèn)隔離級別。
  • READ_UNCOMMITTED: 允許讀取未提交的更改。
  • READ_COMMITTED: 僅允許讀取已提交的更改。
  • REPEATABLE_READ: 確保在事務(wù)內(nèi)重復(fù)讀取同一記錄的結(jié)果一致。
  • SERIALIZABLE: 完全隔離,確保事務(wù)串行化執(zhí)行。

4.事務(wù)超時(shí)設(shè)置

通過@Transactional注解的timeout屬性,可以為事務(wù)指定超時(shí)時(shí)間。如果事務(wù)執(zhí)行時(shí)間超過了指定的時(shí)間限制,Spring將自動回滾事務(wù)。

5.回滾規(guī)則

通過@Transactional注解的rollbackFornoRollbackFor屬性,可以精確控制異?;貪L行為:

  • rollbackFor: 指定哪些異常應(yīng)該觸發(fā)事務(wù)回滾。
  • noRollbackFor: 指定哪些異常不應(yīng)該觸發(fā)事務(wù)回滾。

三、事務(wù)管理的最佳實(shí)踐

1.事務(wù)邊界的確定

事務(wù)邊界定義了事務(wù)的開始和結(jié)束,合理的事務(wù)邊界可以確保事務(wù)既不過大也不過小。

  • 定義清晰的業(yè)務(wù)邏輯單元:每個(gè)事務(wù)應(yīng)該對應(yīng)一個(gè)清晰定義的業(yè)務(wù)邏輯單元。不應(yīng)該讓一個(gè)事務(wù)覆蓋多個(gè)不相關(guān)的操作。
  • 避免長事務(wù):長事務(wù)會占用數(shù)據(jù)庫資源,增加鎖定的范圍和時(shí)間,從而影響并發(fā)性能。盡量避免不必要的長事務(wù),及時(shí)提交或回滾。
  • 事務(wù)中的操作數(shù)量:雖然理論上事務(wù)可以包含任意數(shù)量的操作,但是在實(shí)踐中,應(yīng)該避免在單一事務(wù)中包含過多的操作。如果業(yè)務(wù)邏輯允許,可以將一個(gè)大事務(wù)分解為幾個(gè)小事務(wù),以提高并發(fā)性和系統(tǒng)穩(wěn)定性。

2.只讀事務(wù)的使用

只讀事務(wù)是指不包含任何修改(插入、更新、刪除)操作的事務(wù)。只讀事務(wù)的使用有以下好處:

  • 性能優(yōu)化:數(shù)據(jù)庫可以對只讀事務(wù)進(jìn)行優(yōu)化,如減少鎖的使用,提升查詢性能。
  • 減少副作用:標(biāo)記為只讀的事務(wù)明確告訴數(shù)據(jù)庫和應(yīng)用程序這個(gè)事務(wù)不會修改數(shù)據(jù),有助于避免由于錯(cuò)誤的數(shù)據(jù)修改導(dǎo)致的問題。

何時(shí)使用只讀事務(wù):

  • 數(shù)據(jù)查詢操作:當(dāng)事務(wù)僅包含數(shù)據(jù)查詢操作,不涉及任何數(shù)據(jù)修改時(shí),應(yīng)將事務(wù)標(biāo)記為只讀。
  • 報(bào)表生成:生成報(bào)表或執(zhí)行大量查詢以分析數(shù)據(jù)時(shí),使用只讀事務(wù)可以提高效率。

3.避免編程式事務(wù)

盡管Spring提供了編程式事務(wù)管理的能力,但在大多數(shù)情況下,推薦使用聲明式事務(wù)管理(@Transactional注解)原因如下:

  • 簡化開發(fā):聲明式事務(wù)管理通過注解的方式,減少了編程的復(fù)雜度,使得事務(wù)管理更加直觀和易于理解。
  • 減少代碼侵入性:使用聲明式事務(wù)管理,事務(wù)代碼與業(yè)務(wù)代碼分離,降低了代碼的耦合度,提高了代碼的可讀性和可維護(hù)性。
  • 統(tǒng)一事務(wù)管理:聲明式事務(wù)管理提供了一種統(tǒng)一的事務(wù)管理機(jī)制,使得事務(wù)管理更加標(biāo)準(zhǔn)化,易于跟蹤和維護(hù)。
http://m.risenshineclean.com/news/62427.html

相關(guān)文章:

  • 傳奇手游最新下載seo優(yōu)化工作內(nèi)容做什么
  • 服務(wù)器上的網(wǎng)站怎么做3012022百度指數(shù)排名
  • 服務(wù)好的企業(yè)做網(wǎng)站南昌seo數(shù)據(jù)監(jiān)控
  • 淄博 網(wǎng)站制作seo網(wǎng)站自動發(fā)布外鏈工具
  • 微信做自己的網(wǎng)站濰坊seo培訓(xùn)
  • 網(wǎng)站淘寶客怎么做的b2b電子商務(wù)網(wǎng)站
  • 建站網(wǎng)址建設(shè)推廣資源seo
  • 淘寶客推廣網(wǎng)站怎么做百度競價(jià)推廣自己可以做嗎
  • 廣州 網(wǎng)站 建設(shè) 制作培訓(xùn)課程開發(fā)
  • 合肥的網(wǎng)站建設(shè)州世界500強(qiáng)企業(yè)名單
  • 廈門做企業(yè)網(wǎng)站站長收錄
  • 如何做網(wǎng)站代理站內(nèi)推廣有哪些方式
  • 可信的邢臺做網(wǎng)站搜索引擎優(yōu)化與推廣技術(shù)
  • 深圳優(yōu)化網(wǎng)站排名競價(jià)推廣賬戶競價(jià)托管費(fèi)用
  • 做兼職比較好的網(wǎng)站網(wǎng)站推廣優(yōu)化排名
  • 廈門市建設(shè)工程造價(jià)信息網(wǎng)如何對seo進(jìn)行優(yōu)化
  • 做PPT不錯(cuò)的網(wǎng)站有哪些網(wǎng)站優(yōu)化推廣平臺
  • 政府網(wǎng)站app建設(shè)百度權(quán)重優(yōu)化軟件
  • 玻璃鋼產(chǎn)品哪個(gè)網(wǎng)站做推廣好一鍵開發(fā)小程序
  • 為什么政府網(wǎng)站做的很爛圖片外鏈生成工具
  • 雁塔免費(fèi)做網(wǎng)站關(guān)鍵詞云圖
  • 網(wǎng)站定時(shí)數(shù)據(jù)切換怎么做的上海網(wǎng)站關(guān)鍵詞排名
  • php網(wǎng)站后臺模版重慶seo整站優(yōu)化方案范文
  • wordpress批量替換標(biāo)簽aso優(yōu)化榜單
  • 網(wǎng)站 優(yōu)化手機(jī)版網(wǎng)絡(luò)優(yōu)化大師手機(jī)版
  • 網(wǎng)站建設(shè)需要提供哪些信息優(yōu)化法治化營商環(huán)境
  • 浙江省住房城鄉(xiāng)建設(shè)廳官方網(wǎng)站推廣網(wǎng)站有效的免費(fèi)方法
  • 網(wǎng)站上的動圖都怎么做的中小企業(yè)網(wǎng)絡(luò)營銷現(xiàn)狀
  • 天津大學(xué)生專業(yè)做網(wǎng)站直鏈平臺
  • 網(wǎng)站建設(shè)小程序開發(fā)公司關(guān)鍵詞推廣軟件排名