springMVC在restful風格的效能優化

2021-07-24 19:00:44 字數 1885 閱讀 8948

目前,restful的介面風格很流行,使用springmvc來搭配restful也是相得益彰。如下,使用@pathvariable註解便可以獲取url上的值。

public string restful(@pathvariable string name)

不過如果你認真的研究過springmvc就會發現,restful風格的介面的效能會大大低於正常形式的springmvc介面。比如下面這種方式。

public string norestful(@requestparam string name)

為了看到效果,我先進行了測試,工具是apache-jmeter,

測試引數,併發量50,總量10000次。

1、非restful介面

2、restful介面

綜上所述,當使用非restful介面時就會直接獲取對應的handlermethod來處理請求,但使用restful介面時,就會每次遍歷所有的方法來查詢,效能差由此形成。

private
我們剛好可以使用它。

另外,我們看到實現匹配邏輯的方法handlermethod handlermethod = lookuphandlermethod(lookuppath, request);其本身是個protected方法,

protected handlermethod lookuphandlermethod(string lookuppath, httpservletrequest request) throws exception
由此便可以在子類中擴充套件它。

//自己的查詢邏輯,根據從請求頭中獲取服務名servicename,進行匹配查詢

}

//對映map

private

@override

protected void registerhandlermethod(object handler, method

handlermethod handlermethod = createhandlermethod(handler, method);

}

由此,springmvc優化邏輯編寫完成。看**量很少,但想通過自己寫出來,需要對springmvc有相當了解,深入理解springmvc的可擴充套件點。

看下優化過後的restful介面

吞吐量和非restful介面差不多,各項應能都接近,達到預期效果。

參考(感謝達達技術團隊分享出來的很多優化方案):

uploadify在SpringMVC下的使用示例

1 引入uploadify的css和js檔案 string path request.getcontextpath uploadify uploadify.css type text css 2 配置相關引數和函式 注意 importlispdialog window close 要在 onuplo...

在專案中使用springmvc

springmvc是spring框架的乙個模組,springmvc和spring無需通過中間整個層進行整合,它是乙個基於mvc的web框架。springmvc是基於方法開發的,struts2是基於類開發的。springmvc將url和controller方法對映,對映成功後springmvc生成乙個...

Spring MVC 在jsp中引入css

背景 前端寫的 html 引入css 格式沒有問題 但是我用jsp顯示就是不行 檢查了路徑沒有問題後,最後發現是spring mvc預設攔截所有請求,所以你需要單獨把靜態資源配起來,springmvc就會放過這些請求了。格式 mvc resources location css css mvc re...