技術共有

spring tx @Transactional 「Advisor」「Target」「ProxyFactory」の詳細説明

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

春に、@Transactional注釈の処理には、次のようないくつかの重要なコンポーネントが含まれます。AdvisorTargetProxyFactory待って。以下に、これらのコンポーネントがどのように連携するかを説明する詳細な説明とコード例を示します。

1. 主要コンポーネントの紹介

1.1 アドバイザー

Advisorこれは Spring AOP のコンセプトであり、ポイントカットとアドバイスが含まれています。企業経営においては、TransactionAttributeSourceAdvisor典型的なアドバイザーです。

1.2 ターゲット

Targetプロキシされるターゲット オブジェクト、つまりビジネス ロジックを実際に実行するオブジェクトを指します。

1.3 プロキシファクトリー

ProxyFactoryこれは、プロキシ オブジェクトを作成するために Spring によって提供されるファクトリ クラスです。 JDK 動的プロキシまたは CGLIB を使用してプロキシ オブジェクトを作成できます。

2. @トランザクション処理の流れ

  1. 注釈を解析する: スプリングスキャン@Transactional注釈。
  2. アドバイザーの作成: トランザクション処理ロジックの作成Advisor
  3. プロキシオブジェクトの作成:使用ProxyFactoryターゲット オブジェクトのプロキシ オブジェクトを作成し、追加しますAdvisorプロキシオブジェクトに追加されました。

3. コード例

3.1 構成クラス

まず、パスします@EnableTransactionManagementトランザクション管理を有効にします。

import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@EnableTransactionManagement
public class AppConfig {
    // DataSource, EntityManagerFactory, TransactionManager beans configuration
}