1.
2.四、線程安全
由於Spring
MVC默認是Singleton的,所以會產生一個潛在的安全隱患。根本核心是instance變量保持狀態的問題。
這個問題有兩種解決辦法:
a) 在控制器中不使用實例變量
b) 將控制器的作用域從單例改爲原型
這兩種做法有好有壞,第一種,需要開發人員擁有較高的編程水平與思想意識,在編碼過程中力求避免出現這種BUG,而第二種則是容器自動的對每個請求產生一個實例,由JVM進行垃圾回收,因此做到了線程安全。使用第一種方式的好處是實例對象只有一個,所有的請求都調用該實例對象,速度和性能上要優於第二種,不好的地方,就是需要程序員自己去控制實例變量的狀態保持問題。第二種由於每次請求都創建一個實例,所以會消耗較多的內存空間。