Некоторое время назад я написал приложение, которое использовало Spring AOP для определения того, какие методы были транзакционными. Теперь у меня есть сомнения относительно того, насколько это была замечательная идея; Я несколько раз сталкивался с небольшим рефакторингом (изменение сигнатур методов и т. д.), который, конечно, не становится очевидным, пока что-то действительно не пойдет не так (и у меня есть логически непоследовательная база данных).
Итак, меня интересует несколько вещей:
- Решили ли другие люди вернуться к явному управлению транзакциями (например, с помощью аннотаций
@Transactional
)? - Есть ли полезные инструменты, которые я могу использовать как часть процесса сборки, чтобы помочь определить, не было ли что-то «сломано»?
- Если люди используют АОП для управления транзакциями, какие шаги они предпринимают, чтобы избежать моих ошибок?
Я использую IntelliJ IDEA, который позволяет вам просматривать декорированные методы и рефакторить конфигурацию Spring XML
вместе с изменениями имени метода, но этого не всегда достаточно (добавление параметра к методу в неправильном месте может повлиять, например, на то, срабатывает ли аспект )