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;
}
}
現在假設兩個用戶打我的應用程序,以便爲我的兩個請求的servlet將創造出具有自己的本地variable.When線程的堆棧新線程的理解如果沒有事務存在,A將觸發函數bookTicket()它將啓動事務。現在我的問題是當線程B調用此方法時,線程B將加入現有事務還是創建新事務?
這個問題可能很愚蠢,但請清除這個疑問,對於每個Web請求,都會有一個由事務管理器創建的新事務? 並針對該請求(該請求的生命週期)應用的事務傳播行爲?
我想知道,對於每一個Web請求是春天的事務管理器啓動一個新的交易線索,我默認
感謝您寶貴的回覆,更加清楚我想知道,對於每個Web請求,Spring事務管理器都會啓動一個新的事務,我問這是因爲在servlet.xml中我們通常將事務管理器bean配置爲單例默認 –
不客氣!試試文檔:http://docs.spring.io/autorepo/docs/spring/4.2.x/spring-framework-reference/html/transaction.html。 – Journeycorner