Существует огромная разница между прокси и байтовыми кодами. Прокси могут только перехватывать, если вызов происходит из «космического пространства», но не если вызов происходит из самого объекта (this.transactionalMethod())
Это означает, что если у вас есть класс с двумя методами, T и B . Метод T
имеет аннотацию транзакции, а метод B
вызывает T
на “this.T()
", тогда прокси никогда не вызывается (для T
), поэтому в этом случае обработки транзакций нет!
Если вы используете AspectJ, код обработки транзакций является небрежным в байтовом коде T
, и он будет выполнен независимо от того, вызван ли вызов из самого объекта или из другого объекта.
Большое вам спасибо за объяснение с ясными и простыми словами. –