Spring middle

@Transactional — под капотом?

Ответ

Spring создаёт прокси-обёртку. JDK dynamic proxy (если интерфейс) или CGLIB (наследование). Прокси: открывает транзакцию (PlatformTransactionManager), вызывает метод, commit при успехе, rollback при ошибке. AspectJ weaving — только при явной настройке mode=ASPECTJ.

Разбор: Декларативные транзакции в Spring по умолчанию реализованы через прокси (JDK dynamic proxy для интерфейсов, CGLIB для классов), который вокруг вызова метода открывает транзакцию через PlatformTransactionManager и делает commit/rollback. Главная ловушка — спутать стандартный proxy-режим с компиляционным AspectJ weaving, который применяется только при явной настройке mode=ASPECTJ.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться