2016-09-13 6 views
0

Я новая птица весной, поэтому ваша помощь будет действительно полезной для меня.Весна Сценарий поведения

Предположим, что у меня есть следующий сценарий:

@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 мы обычно настроенный менеджер транзакций боб как одноточечные по умолчанию

ответ

1

транзакционных только для баз данных, он не откатывает измененные поля. Если вы изменяете поле в своем классе, вам нужно иметь дело с параллелизмом, например. сделайте переменную count AtomicInteger.

+0

Спасибо за ваш ценный ответ, чтобы быть более ясным. Я хотел бы знать, что для каждого веб-запроса весенний транзакционный менеджер запускает новую транзакцию, я спрашиваю об этом, потому что в файле servlet.xml мы обычно настраиваем beans-менеджер транзакций как singleton по умолчанию –

+0

Добро пожаловать! Попробуйте документацию: http://docs.spring.io/autorepo/docs/spring/4.2.x/spring-framework-reference/html/transaction.html. – Journeycorner