この記事では、Spring のトランザクション管理設定におけるアノテーションの使用方法を主に紹介します。編集者が非常に優れていると考えたので、参考として共有します。エディターに従って見てみましょう
使用手順:
ステップ 1. Spring 構成ファイルに
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
ステップ 2. @Transactional アノテーションを持つ Bean は自動的に次のように構成されます宣言型トランザクションのサポート
<!-- 事务管理器配置, Hibernate单数据源事务 --> <bean id="defaultTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- 使用annotation定义事务 --> <tx:annotation-driven transaction-manager="defaultTransactionManager" proxy-target-class="true" />
ステップ 3. インターフェイスまたはクラスの宣言に @Transactional を記述します。
インターフェイスにのみ記述する場合、インターフェイスの実装クラスをオーバーライドできます。クラス宣言時の設定
@Transactional //クラスレベルのアノテーション、クラス内のすべてのパブリックメソッドに適用可能
トランザクションの伝播動作と分離レベル
誰もがSpringアノテーションを使用しています 従来のトランザクション管理を使用する場合、トランザクションの伝播動作と分離レベルについて少し混乱するかもしれません。簡単に参照できるように、以下に詳細を示します。
Thing アノテーション メソッド: @Transactional
クラスの前にマークすると、クラス内のすべてのメソッドがトランザクション処理を実行することを示します。 例:
@Transactional public class TestServiceBean implements TestService {}
クラス内の一部のメソッドがトランザクションを必要としない場合:
@Transactional public class TestServiceBean implements TestService { private TestDao dao; public void setDao(TestDao dao) { this.dao = dao; } @Transactional(propagation = Propagation.NOT_SUPPORTED) public List<Object> getAll() { return null; } }
物事 伝播動作の概要:
@Transactional(propagation=Propagation.REQUIRED)
トランザクションが存在する場合はトランザクションに参加し、存在しない場合は新しいトランザクションを作成します(デフォルト)
@ Transactional(propagation=Propagation.NOT_SUPPORTED)
コンテナはこのメソッドのトランザクションを開きません
@Transactional(propagation=Propagation.REQUIRES_NEW)
トランザクションが存在するかどうかに関係なく、新しいトランザクションが作成されます。新しいトランザクションが実行された後、古いトランザクションは継続されます。 @Transactional(propagation=Propagation.NEVER)
は既存のトランザクションで実行する必要があります トランザクションで実行されます。そうでない場合は例外がスローされます(Propagation.MANDATORYの反対)
@Transactional(propagation=Propagation.SUPPORTS)
他の Bean がこのメソッドを呼び出し、他の Bean でトランザクションを宣言する場合は、トランザクションを使用します。他の Bean がトランザクションを宣言しない場合、
Thing のタイムアウト設定は必要ありません:
( timeout=30) //デフォルトは30秒です
トランザクション分離レベル:
@Transactional(isolation = Isolation .READ_UNCOMMITTED)
@Transactional(isolation = Isolation.READ_COMMITTED)
コミットされたデータの読み取り(反復不可能な読み取りが発生します)およびファントム読み取り)
@Transactional(isolation = Isolation.REPEATABLE_READ)
反復可能な読み取り(ファントム読み取り)が発生します)
@Transactional(isolation = Isolation.SERIALIZABLE)
シリアル化
ダーティ リード: 1 つのトランザクションがコミットされていない更新データを読み取ります別のトランザクションから
読み取られるデータは同じであること、つまり、後続の読み取りでは、別のトランザクションによって送信された更新データを読み取ることができないことを保証できます
ファントム読み取り: 1 つのトランザクションが、送信された挿入データを読み取ります別のトランザクションによる
readOnly | この属性は、現在のトランザクションがトランザクションであるかどうかを設定するために使用されます読み取り専用トランザクション。読み取り専用を示す場合は true、読み取り/書き込みを示す場合は false に設定します。デフォルト値は false です。例: @Transactional(readOnly=true) | ||||||||||||||
rollbackFor | この属性は、指定された例外配列内の例外がスローされたときにロールバックする必要がある例外クラス配列を設定するために使用されます。メソッドを実行すると、トランザクションはロールバックされます。例: | ||||||||||||||
複数の例外クラスを指定します: @Transactional(rollbackFor={RuntimeException.class, Exception.class}) |
表続き)
|
以上がSpring のトランザクション管理設定におけるアノテーションの使用例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
