Я новая птица весной, поэтому ваша помощь будет действительно полезной для меня.Весна Сценарий поведения
Предположим, что у меня есть следующий сценарий:
@Transactional(propagation = Propagation.REQUIRED, timeout = 1, isolation = Isolation.READ_COMMITTED,rollbackFor=Exception.class)
public boolean bookMovieTicket()
{
//Check how many tickets are available
int noTicket=getAvailableTicket();
if(noTicket>0)
{
//decrements the count of ticket
noTicket--;
updateCount(noTicket);
return true;
}
else
{
return false;
}
}
Теперь предположим, два пользователя ударил мое приложение так, как я понимаю, как для запроса сервлета будет создавать новый поток, который имеет свой собственный стек местного variable.When нити A ударит функцию bookTicket(), он запустит транзакцию, если транзакции не существует. Теперь мой вопрос: когда поток B вызывается этим методом, Thread B присоединится к существующей транзакции или создаст новую.
Этот вопрос может быть глупым, но, пожалуйста, проясните это сомнение в том, что для каждого веб-запроса будет создана новая транзакция, созданная менеджером транзакций? и для конкретного запроса (жизненного цикла этого запроса) поведения распространения транзакции?
Я хотел бы знать, для веба-запроса каждый весна транзакционного менеджера начать новую тему Transaction, я спрашиваю это потому, что в servlet.xml мы обычно настроенный менеджер транзакций боб как одноточечные по умолчанию
Спасибо за ваш ценный ответ, чтобы быть более ясным. Я хотел бы знать, что для каждого веб-запроса весенний транзакционный менеджер запускает новую транзакцию, я спрашиваю об этом, потому что в файле servlet.xml мы обычно настраиваем beans-менеджер транзакций как singleton по умолчанию –
Добро пожаловать! Попробуйте документацию: http://docs.spring.io/autorepo/docs/spring/4.2.x/spring-framework-reference/html/transaction.html. – Journeycorner