С точки зрения теоретического вопроса (собеседование, объяснение и т. Д.), Поддержка транзакций может быть реализована как «обходной» совет с точки зрения АОП.
Пояснение:
Рекомендация Around обеспечивает ловушку как до, так и после выполнения фактического кода, и это именно то, что нужно для реализации @Transactional
логики.
Перед выполнением «аппликативного» кода Spring откроет транзакцию или, в качестве альтернативы, реализует более сложную логику (например, поддержку вложенных транзакций и т. Д. Это называется распространением; существует также изоляция - все они технически могут быть установлены в качестве параметров @Transactional
аннотации)
После выполнения аппликативного кода Spring должен проверить результат и зафиксировать или откатить транзакцию в зависимости от состояния (обычно, если аппликативный код выдает исключение, откат следует выполнить, если все в порядке - commit.
Обратите внимание, что терминология, которую вы использовали в вопросе "какой тип pointcut имеет аспект @Transactional", не совсем точна.
Pointcut в AOP определяет, к каким точкам соединения должен применяться связанный Совет.
Вся логика, которая обрабатывает транзакции, может быть реализована в Совете типа вокруг .