springMVC中的controller,在沒有成員變數時,是安全的嗎?為什麼?

時間 2021-05-31 21:52:39

1樓:李偉

在spring單例模式下,controller方法中的物件引用是會建立多個物件,只要這個物件中沒有類變數靜態變數他是不會有執行緒安全問題的。成員變數是屬於物件的。只要不是單例物件他是不會有執行緒安全問題的。

所以我們在設計類和方法是盡量是無狀態的。如果無法避免就可以使用ThreadLocal物件。

2樓:龍龍

應該不會,因為方法和區域性變數是儲存在棧記憶體中,而棧記憶體是執行緒私有的,a和b呼叫方法是開啟了兩個執行緒,所以不會有執行緒安全問題

3樓:coca

SpringMVC的Controller只有乙個例項提供服務,如果沒有成員變數,那麼這個例項本身應該不會有執行緒安全問題,但是同乙個方法就不好說,比如getData方法中可能同時會訪問某個資源,比如同時讀寫某個檔案,這時候就還會有執行緒同步問題。所以是否執行緒安全,還是得分析完整的功能呼叫鏈條。

4樓:GoldRose

springMVC中controller是單例的,他的成員函式執行的是無狀態的,執行緒安全的。成員變數由於單例,多個請求共享這些變數,無法安全

SpringMVC當中的 Transactional readOnly true 意義?

馬中斌 這是Spring的,不是SpringMVC的。指明這是乙個唯讀事務,以對相應執行作優化。這只是事務的乙個方面,其他還有rollbackFor,isolation,propagation,timeout lee 如果你一次執行單條查詢語句,則沒有必要啟用事務支援,資料庫預設支援SQL執行期間的...

SpringMVC的工作原理是什麼樣的,跟Spring的關係是怎麼樣的?

史上第一慫 建議看一下黃勇寫的 架構探險,從零開發乙個web框架 作者相當於實現了乙個簡單的spring,springmvc框架。我只花了兩天時間看了前半本,就對spring與springmvc有了大致了解。 程式狗 上圖只是Spring MVC比較粗淺的執行過程,詳細的執行過程有時間再來答吧。由上...

Angular中import from 中的 的作用是什麼?

1.因為NPM上的公共包需要命名,而命名存在重名情況,對應特定專案下使用的包或者防止重名,可以用下scope package。有點類似於JS防止全域性變數汙染的,比如a是個全域性變數,但是怕被其他程式設計師寫的汙染,就會弄個dog.a或者pig.a 2.npm上管理的還有種情況也是scope pac...