FRONTIER:Spring Transaction Managementのより詳細な調査により、この記事では例を作成することはありませんが、説明のために特定のクラスと構成ファイルを指定します。
この記事の内容:
1.宣言的な取引とは何ですか?
2。宣言的な取引管理とは何ですか?
3.これらのタイプのトランザクション管理の違いは何ですか?
1.宣言的な取引とは何ですか?
宣言的なトランザクション管理は、Springが提供するプログラムトランザクションを管理する方法の1つです。 Springの宣言トランザクションは、宣言的な方法を使用してトランザクションを処理し、Spring構成ファイルのトランザクションの宣言的処理を使用して、トランザクションのコードベースの処理を置き換えます。これの利点は、トランザクション管理が開発コンポーネントに侵入しないことです。具体的には、ビジネスロジックオブジェクトは、それがトランザクション管理にあることを認識しません。実際、トランザクション管理はシステムレベルのサービスであり、ビジネスロジックの一部ではないため、同じことが当てはまるはずです。トランザクション管理を変更する場合は、定義された構成ファイルの構成を変更するだけです。トランザクション管理が不要な場合は、構成ファイルで変更し、コードを変更せずにトランザクション管理サービスを削除して再コンパイルするだけで、メンテナンスが非常に便利です。
2。宣言的トランザクション管理方法。
まず、宣言的トランザクション管理方法について話す前に、元のトランザクション管理を見てみましょう。
上記の図からわかるように、最初に新しいsession.opensession()を作成する必要があります。次に、セッションのgetTransaction()。begin()メソッドとgetTransaction()。commit()メソッドを介してトランザクションを作成およびコミットする必要があります。このようにして、この方法を呼び出すたびに、新しいセッションを再現し、同じことを繰り返し行いますが、これはソフトウェアエンジニアリングのデザインのアイデアに準拠していません。次に、宣言的トランザクション管理を使用して、コードを簡素化および調整します。
1。Springaop宣言的なトランザクション管理を使用します。
1.1。 AOPのいくつかのパッケージをインポートする必要があります。
1.2。次に、application.xml構成ファイルでトランザクション構成を実行します。
1.3。すべてのデータを照会する方法を変更します。
上記の説明の後、showallnews()メソッドの変更を確認できます。まず、GetCurrentsSession()メソッドに元のOpenSession()メソッドを変更します(注:スクリーンショットには違いを説明するコメントがあるため、繰り返されません)。トランザクションを手動で作成してコミットする必要はありません。 Springaopは、トランザクションを自動的に管理し、セッションを自動的に閉じます。
2。@Transactional Annotationメソッドを使用します。
2.1。まず、application.xml構成ファイルでトランザクション構成を実行する必要があります(springコンテナを通知して、annotation @transactionalのBean処理を処理します):
2.2。次に、NewsDaoImplで操作や変更を行う必要はありません。
2.3。 NewsServiceImplに注釈を追加します。
ここでは、クラスに@Transactionalアノテーションを追加し(すべてのメソッドがトランザクション管理に追加されることを意味します)、または特定のメソッドにAnnotation @Transactionalを追加できます。データの変更を必要としないメソッドの場合は、属性を追加します。
例:すべてのdata @transactional(readonly = true)を照会する方法
3。springaopと@transactionalアノテーションを使用して構成された宣言的トランザクション管理の違い:
1)Springaop構成宣言的トランザクション管理は、カップリングが低く、読みやすさが低く、詳細な表現が高く、柔軟性が高くなっています。
2)@Transactionalアノテーションは読みやすく、コンテンツは分散されており、統一された管理とメンテナンスを助長し、高い結合があります。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。