springmvc 開發中關於Controller 的單例情況和多例情況
阿新 • • 發佈:2019-02-03
本案例情況:springmvc+html+url傳遞引數,url直接訪問一個controller來進行頁面分配
在開發的過程中,我們springmvc裡面的controller用的不少,但是需要注意併發的情況。比如我們在做一個介面,所需要的引數是通過url來傳遞,這個時候,是直接訪問了一個controller A,然後在A中讀取出url裡面的引數id,這個id需要返回給前端html,而剛好這個A又是返回一個頁面給前端,這個時候id和頁面不能同時返回,所以將id設定為全域性變數,然後用html用ajax來訪問A的另一個方法得到id。
這樣做的弊端有很多,比如你這個id是全域性的,所以每次訪問A都會例項這個bean,然後如果第二個使用者剛好也訪問了A,那麼兩個使用者就用了相同的id,因為這個時候是單例模式,所以應該將這個controller設定為多例模式。
小弟不才,希望有發現這個說法有錯誤的大神能指點一下。^_^
但是因為專案後面要用到叢集,所以用了session的話,不同的伺服器之間的會話是不共享的,如果要弄好又很麻煩,所以不能用session。那麼問題又回到了原點。
用新的解決思路:
這是我的解決springmvc 返回資料和頁面給html的辦法