После быстрого изучения Баван заявил: "Автоматически созданный прокси-объект вашей службы не выполняет транзакцию, так как аннотация
Transactional
указана на закрытом вспомогательном методе, а не на доступном интерфейсном методе, который его вызывает"."Я не понимаю", - сказал монах, - "что это за 'прокси-объект', о котором Вы говорите?"
Баван посмотрел на монаха с подозрением: "Опишите мне, как выполняются и отменяются транзакции в библиотеке AOP".
Монах пожал плечами: "Они выполняются автоматически".
Баван ударил монаха по голове: "Если бы я спросил Вас, как маг Императора заставляет кроликов исчезать, то Вы бы ответили 'с помощью магии'? Думайте, прежде чем говорить, или я покажу Вам, как можно заставить исчезнуть монаха".
Монах потёр голову: "Выходит, что сторонние библиотеки не освобождают нас от необходимости знать, как они устроены внутри? А как насчёт принципа Чёрного Ящика?"
Баван протянул руку за левое ухо монаха, достал из воздуха деревянную ложку и опять ударил ей монаха: "Когда кролика кладут в Чёрный Ящик и он там исчезает по команде, то у зрителей есть привилегия просто охать и ахать в изумлении. Но мы, стоя на сцене, должны знать, как выполняется фокус. Ценой аплодисментов является потеря наивности".
Original: The Magician's Code