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.