Обмен технологиями

Spring tx @Transactional Подробное объяснение `Advisor`, `Target`, `ProxyFactory

2024-07-11

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

Весной,@TransactionalОбработка аннотаций включает в себя несколько ключевых компонентов, в том числеAdvisorTargetProxyFactory ждать. Ниже приведено подробное объяснение и пример кода, объясняющий, как эти компоненты работают вместе.

1. Знакомство с ключевыми компонентами

1.1 Советник

Advisor Это концепция Spring AOP, которая включает в себя pointcut и советы. В управлении бизнесом,TransactionAttributeSourceAdvisorТипичный советник.

1.2 Цель

TargetОн относится к проксируемому целевому объекту, то есть к объекту, который фактически выполняет бизнес-логику.

1.3 ProxyFactory

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
}