同じクラス内のトランザクション メソッド呼び出しの問題
問題:
Spring で、次の注釈が付けられたメソッドを呼び出そうとしている同じクラス内からの @Transaction は非効率的な結果となる可能性があります。 transaction.
コード例:
public class UserService { @Transactional public boolean addUser(String userName, String password) { // ... } public boolean addUsers(List<user> users) { for (User user : users) { addUser(user.getUserName, user.getPassword); } } }</user>
問題の理解:
この問題は Spring の制限により発生しますAOP の動的オブジェクト処理と cglib の使用。 Spring のデフォルトのトランザクション処理メカニズムは、cglib で作成された動的プロキシを使用するため、同じクラス内からトランザクション メソッドを呼び出すときに不一致が発生する可能性があります。
解決策:
トランザクション処理に AspectJ を使用する:
解決するにはこれにより、トランザクションの処理に AspectJ を使用するように Spring を設定できます。これには以下が含まれます:
-
tx:annotation-driven でモードを aspectj に設定:
<annotation-driven mode="aspectj"></annotation-driven>
-
次の Bean 構成を追加します (春バージョンは以下3.0):
<bean class="org.springframework.transaction.aspectj.AnnotationTransactionAspect" factory-method="aspectOf"> <property name="transactionManager" ref="transactionManager"></property> </bean>
リファクタリング:
別の解決策は、コードをリファクタリングすることです。同じクラス内からトランザクション メソッドを呼び出す代わりに、ユーザー処理と処理用に別のクラスを作成して、Spring AOP を使用したデフォルトのトランザクション処理を有効にすることを検討してください。
以上がSpring で同じクラス内で @Transactional メソッドを自己呼び出しすると失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

一部のアプリケーションが適切に機能しないようにする会社のセキュリティソフトウェアのトラブルシューティングとソリューション。多くの企業は、内部ネットワークセキュリティを確保するためにセキュリティソフトウェアを展開します。 ...

Javaにパラメーターを使用してWeChatアプレットQRコードを生成し、HTMLページに表示することは一般的な要件です。この記事では、Jの使用方法について詳しく説明します。

Java Multi-interfaceコール間の状態同期呼び出し:Java開発でインターフェイスBに対するインターフェイスAの影響を聞くと、複数のインターフェイスを同時に呼び出す必要がある状況に遭遇することがよくあります...

JavaプログラミングのJavaの単一スレッドの下での単一スレッドの下での指導の並べ替えに関する議論、指導の並べ替えは一般的なトピックです。命令の並べ替えとは、コンパイラとプロセッサを指します...

Outlookで定期的な繰り返しカレンダーイベントを作成するこの記事では、Javaコードを使用してOutlookで毎日または毎週の繰り返しカレンダーイベントを作成する方法について説明します。運ぶ...

Tomcatは、トラブルシューティング時にサーブレットエラーチェックを開始します。サーブレットアプリケーションを展開するとき、Tomcatは起動に失敗し、Java.lang.IllegalStateExceptionを報告しました:...

ZIPINPUTSTREAMの文字セット設定に関する議論多くの開発者は、ZIPINPUTSTREAMを使用して、中国のファイル名またはフォルダー名を含むZIPパッケージを減圧します...

LLMを構築する際にSpringWebFluxを使用してRETRY戦略を実装しています...


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
