Встречается на собеседованиях • сегодня
Как работает транзакция в Spring
Spring управляет транзакциями через @Transactional аннотацию или программно через TransactionTemplate. Под капотом используется AOP для создания прокси, который обрабатывает начало, фиксацию или откат транзакции.
Ключевые моменты:
- По умолчанию используется propagation
REQUIRED– если транзакция уже есть, метод присоединяется к ней. readOnly = trueоптимизирует запросы (например, в Hibernate).- Откат происходит при необработанных
RuntimeException(но не приcheckedисключениях).
Пример:
java
@Service
public class UserService {
@Transactional
public void transferMoney(Account from, Account to, double amount) {
from.debit(amount);
to.credit(amount);
// Если здесь выбросится исключение – транзакция откатится
}
}Нюансы:
@Transactionalнаprivateметодах не работает (проксирование через CGLIB требует видимости).- Внутренние вызовы методов одного класса не проксируются (проблема self-invocation).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы