Встречается на собеседованиях • сегодня

Как работает аннотация @Transactional под капотом

Аннотация @Transactional в Spring работает через AOP (Aspect-Oriented Programming). При вызове метода, помеченного @Transactional, Spring создает прокси вокруг бина, который управляет транзакцией.

Основные этапы:

  1. Перед вызовом метода открывается транзакция (если не существует активной).
  2. Выполняется целевой метод.
  3. Если метод завершился успешно – транзакция коммитится.
  4. При возникновении исключения – транзакция откатывается (rollback).

Пример:

java
@Service
public class UserService {
    @Transactional
    public void createUser(User user) {
        // бизнес-логика
    }
}

Нюансы:

  • По умолчанию откатывает только на unchecked исключениях (RuntimeException)
  • Можно настроить через параметры: propagation, isolation, timeout, readOnly
  • Работает только через прокси, поэтому вызовы внутри одного класса не будут обрабатываться
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы