1樓:馬中斌
這是Spring的,不是SpringMVC的。
指明這是乙個唯讀事務,以對相應執行作優化。這只是事務的乙個方面,其他還有rollbackFor,isolation,propagation,timeout
2樓:lee
如果你一次執行單條查詢語句,則沒有必要啟用事務支援,資料庫預設支援SQL執行期間的讀一致性;
如果你一次執行多條查詢語句,例如統計查詢,報表查詢,在這種場景下,多條查詢SQL必須保證整體的讀一致性,否則,在前條SQL查詢之後,後條SQL查詢之前,資料被其他使用者改變,則該次整體的統計查詢將會出現讀資料不一致的狀態,此時,應該啟用事務支援
read-only="true"表示該事務為唯讀事務,比如上面說的多條查詢的這種情況可以使用唯讀事務,
由於唯讀事務不存在資料的修改,因此資料庫將會為唯讀事務提供一些優化手段,例如Oracle對於唯讀事務,不啟動回滾段,不記錄回滾log。
(1)在JDBC中,指定唯讀事務的辦法為: connection.setReadOnly(true);
(2)在Hibernate中,指定唯讀事務的辦法為: session.setFlushMode(FlushMode.NEVER);
此時,Hibernate也會為唯讀事務提供Session方面的一些優化手段
(3)在Spring的Hibernate封裝中,指定唯讀事務的辦法為: bean配置檔案中,prop屬性增加「read-Only」
或者用註解方式@Transactional(readOnly=true)
Spring中設定唯讀事務是利用上面兩種方式(根據實際情況)
在將事務設定成唯讀後,相當於將資料庫設定成唯讀資料庫,此時若要進行寫的操作,會出現錯誤。
3樓:牛草兒
transaction-read-only,就是開始事務時指定屬性為唯讀模式,只能read,不能write;預設情況下,事務是「read/write」模式。
4樓:劉旭
新增@Transactional readOnly=true在對應的類或方法中就不允許更新資料庫操作,spring也會對這種方式進行訪問優化。
springMVC中的controller,在沒有成員變數時,是安全的嗎?為什麼?
李偉 在spring單例模式下,controller方法中的物件引用是會建立多個物件,只要這個物件中沒有類變數靜態變數他是不會有執行緒安全問題的。成員變數是屬於物件的。只要不是單例物件他是不會有執行緒安全問題的。所以我們在設計類和方法是盡量是無狀態的。如果無法避免就可以使用ThreadLocal物件...
SpringMVC的工作原理是什麼樣的,跟Spring的關係是怎麼樣的?
史上第一慫 建議看一下黃勇寫的 架構探險,從零開發乙個web框架 作者相當於實現了乙個簡單的spring,springmvc框架。我只花了兩天時間看了前半本,就對spring與springmvc有了大致了解。 程式狗 上圖只是Spring MVC比較粗淺的執行過程,詳細的執行過程有時間再來答吧。由上...
在 Manhattan SC 當中的 Working verb 能否被翻譯成 謂語動詞 ?
sapereaude 是用以和英文句的句法結構當中,不能當主角 主要動詞的 動狀詞 verbals 做分別,亦即,用以和下列這三種詞類 分詞 participle,過去 被動past or passive分詞,以及現在 主動present active分詞 動名詞 gerund。跟主動分詞有同形綴尾...