기술나눔

spring tx @Transactional `Advisor`, `Target`, `ProxyFactory에 대한 자세한 설명

2024-07-11

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

봄에,@Transactional주석 처리에는 다음을 포함한 몇 가지 주요 구성 요소가 포함됩니다.AdvisorTargetProxyFactory 기다리다. 다음은 이러한 구성 요소가 함께 작동하는 방식을 설명하는 자세한 설명과 코드 예제입니다.

1. 주요 구성품 소개

1.1 고문

Advisor Pointcut과 Advisory를 포함하는 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
}