Коли ви викликаєте метод поза @Transactionalблоком транзакції, батьківська транзакція перейде до нового методу. Він використовуватиме те саме підключення від батьківського методу (with @Transactional) та будь-який виняток, викликаний викликаним методом (без @Transactional, призведе до відкоту транзакції, як налаштовано у визначенні транзакції.
Якщо ви викликаєте метод із @Transactionalанотацією з методу, що знаходиться @Transactionalв тому самому екземплярі, тоді викликані методи транзакційної поведінки не вплинуть на транзакцію. Але якщо ви викликаєте метод із визначенням транзакції з іншого методу з визначенням транзакції, і вони знаходяться в різних екземплярах, тоді код у викликаному методі буде слідувати за визначеннями транзакцій, вказаними у викликаному методі.
Ви можете знайти більш детальну інформацію в розділі декларативного управління транзакціями в документації пружинних угод .
Весняна декларативна модель транзакції використовує проксі-сервер AOP. тому проксі-сервер AOP відповідає за створення транзакцій. Проксі-сервер AOP буде активним лише в тому випадку, якщо методи з екземпляром будуть викликані ззовні екземпляра.