13

Springではどのような種類のトランザクション管理戦略を使用する必要がありますか?宣言型またはプログラム型?どちらが優れており、どのような状況でそれを使用する必要がありますか?それについての適切な例やチュートリアルを教えてください。

また、春にデータベースコードを書くときに使用すべき最新のものは何ですか?HibernateTemplateの代替は何ですか?

4

6 に答える 6

17

プログラマティックトランザクション管理

  1. ソースコードでプログラミングすることでトランザクションを管理できます。
  2. これは、ビジネスロジック間のトランザクションロジックをハードコーディングすることを意味します。
  3. プログラミングを使用してトランザクションを管理します
  4. 柔軟性はありますが、大量のビジネスロジックで保守するのは困難です。ビジネスロジック間に定型文を導入します。
  5. 比較的少ないトランザクションロジックを導入する場合に推奨されます。

宣言型トランザクション管理

  1. 構成を通じてトランザクションを管理できます。
  2. これは、トランザクションロジックをビジネスロジックで分離することを意味します。
  3. トランザクションを管理するために注釈(またはXMLファイル)を使用します。
  4. メンテナンスが簡単です。ボイラープレートはビジネスロジックから遠ざけられます。
  5. 大量のトランザクションロジックを操作する場合に適しています。
于 2017-03-24T04:54:52.843 に答える
7

それらは相互に排他的ではありません。

@Transactionalほとんどの場合、decalrativeトランザクション管理()を使用できTransactionTemplate、Spring AOPの制限に直面した場合(11.5.1 Spring Frameworkの宣言型トランザクション実装についてを参照)、またはより複雑なトランザクションを制御する必要がある場合は、プログラムによるトランザクション管理()にフォールバックできます。方法。

于 2012-06-27T09:16:00.203 に答える
7

Springは、プログラム型トランザクションと宣言型トランザクションの両方を提供します。

プログラマティックとは、ビジネスコードを取り巻くトランザクション管理コードがあることを意味します。これは非常に柔軟性がありますが、保守が難しく、定型文です。

宣言型とは、トランザクション管理をビジネスコードから分離することを意味します。注釈またはXMLベースの構成を使用できます。

programmatic management is more flexible during development time but less flexible during application life
declarative management is less flexible during development time but more flexible during application life

http://docs.spring.io/spring/docs/3.0.x/reference/transaction.html

宣言型トランザクション管理により、Javaコードからトランザクションフレームワークへの依存関係を排除できます。トランザクションサポートを提供する4つの参加者は、トランザクションマネージャー、プロキシファクトリ、トランザクションインターセプター、および一連のトランザクション属性です。

NamedJDBCTemplateまたはsimpleJDBCTemplateのいずれかのHibernateTemplatesの代替である宣言型トランザクション管理の使用を提案します

于 2013-09-15T14:27:54.923 に答える
3

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/transaction.html#tx-decl-vs-prog

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/transaction.html

一般に。

例:

http://www.springbyexample.org/examples/hibernate-transaction-annotation-config.html

新機能:SessionFactoryでDIを使用することをお勧めします。3.1の新機能であるHibernate4のサポートもご覧ください。http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/new-in-3.1.html#d0e1385を参照してください

于 2012-06-27T08:31:11.573 に答える
3

プログラムによるトランザクション管理は、通常、トランザクション操作の数が少ない場合にのみお勧めします。たとえば、特定の更新操作に対してのみトランザクションを必要とするWebアプリケーションがある場合、Springまたはその他のテクノロジを使用してトランザクションプロキシを設定したくない場合があります。この場合、TransactionTemplateを使用することをお勧めします。トランザクション名を明示的に設定できることも、トランザクション管理へのプログラムによるアプローチを使用してのみ実行できることです。

一方、アプリケーションに多数のトランザクション操作がある場合、宣言型トランザクション管理は通常価値があります。トランザクション管理をビジネスロジックから遠ざけ、構成は難しくありません。

于 2019-09-10T06:52:24.303 に答える
0

Springがサポートするトランザクション管理には2つのタイプがあります。

1.プログラムによるトランザクション管理:トランザクションはプログラミングの助けを借りて管理され、非常に柔軟性がありますが、維持するのは困難です。

2.宣言型トランザクション管理:トランザクション管理はビジネスコードから分離されており、トランザクションの管理には注釈またはXMLベースの構成のみが使用されます。

于 2017-10-07T07:33:50.190 に答える