Внутреннее устройство транзакции Spring

Ситуация следующая:

  1. Method1 имеет четыре метода обновления базы данных. Метод 1 аннотируется с использованием семантики управления транзакциями Spring.

  2. В Method2 есть метод чтения из базы данных, и он вызывается после того, как Method1 завершает выполнение всех обновлений своей базы данных. Method2 также аннотируется с использованием семантики транзакции Spring.

  3. Приходит веб-запрос, контроллер перехватывает запрос и вызывает метод 1, а затем метод 2.

  4. Транзакция также оборачивается вокруг веб-запроса.

Что мне интересно знать:

1. Как Spring знает, что нужно фиксировать обновления базы данных после успешной транзакции? Есть ли ссылка на реализацию Spring, которая выполняет управление транзакциями?

2.Поскольку у нас есть иерархия транзакций: Транзакция вокруг веб-запроса-> Транзакция с распространением = RequestNew для Method1-> Транзакция с распространением = Требуется для метода2, как Spring выполняет управление транзакциями, чтобы гарантировать, что транзакции выполняются в надлежащем контексте с правильным порядком?

Короче говоря, было бы здорово получить игровой отчет о том, как Spring выполняет управление транзакциями во всех его мельчайших деталях, или ссылку на документацию, которая не просто дает объяснение, основанное на JTA или другом аббревиатуре.

Спасибо

6
задан sc_ray 23 December 2011 в 05:14
поделиться