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

Как работает @Transactional в Spring

@Transactional в Spring управляет транзакциями на уровне метода или класса. Основные моменты:

  • Механизм: Проксирует вызовы методов, добавляя логику начала/завершения транзакции.
  • Работает через AOP: Если метод помечен аннотацией, Spring создает прокси, который управляет транзакцией.
  • Настройки: Можно указать propagation, isolation, timeout, readOnly, rollbackFor и др.

Пример:

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

Нюансы:

  1. Работает только с публичными методами.
  2. Самовызовы внутри класса не будут проксироваться.
  3. По умолчанию откатывает только при RuntimeException.
  4. Требует правильно настроенного TransactionManager.
  5. Для JDBC использует DataSourceTransactionManager, для JPA — JpaTransactionManager.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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