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

Как реализована транзакционность в Spring

В Spring транзакционность реализуется через декларативное управление транзакциями с помощью аннотации @Transactional. Под капотом используется AOP (Aspect-Oriented Programming).

Основные моменты:

  1. Работает через PlatformTransactionManager (например, DataSourceTransactionManager для JDBC)
  2. По умолчанию применяется propagation REQUIRED (использует текущую транзакцию или создает новую)
  3. Уровень изоляции по умолчанию - DEFAULT (берется из БД)

Пример:

java
@Service
public class UserService {
    
    @Transactional
    public void transferMoney(Long fromId, Long toId, BigDecimal amount) {
        // Бизнес-логика
    }
}

Нюансы:

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

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

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

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