熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

struts2項目性能調優三步曲(三)

2022-06-13   來源: Java開源技術 

  通過上兩篇文章的研究影響Struts性能的原因在於Ognl的Value Stack的性能不佳那麼如果解決呢我首先嘗試使用JSF一開始選擇JSF的原因主要是

  1Stuts自己提供了JSF的Plugin2JSF是Sun作為標准提出而且已經通過的從Google的趨勢搜索上也可以看出搜索JSF的人在增多

  2JSF作為一種以組件為基礎的Web Framework有其獨到之處其內建的和其他許多開源的組件使用起來相當方便強大當然對於不同的應用來說也有不利之處(後面會提到)但是如果能夠堅持長期使用逐漸積累組件庫的話JSF是一個很好的選擇

  3JSF的文檔(或者說是書籍)還是比較多的

  經過測試使用後發現其性能與Struts相比確實提升不少但是後來遇到了一個問題所以最後還是放棄了JSF這個問題是關於JSF的DataTable的JSF提供的DataTable其實使用起來很方便可定制化程度也不錯只是剛好缺少了我所希望的功能(也可能是我不知道如何實現)我的應用中的DataTable是一個動態的結果集也就是說輸出的列是不能預先確定的而DataTable卻要求先聲明好所有的DataColumn我不知道如何解決這個問題所以最後放棄了JSF我的第二個選擇是FreeMarker選擇FreeMarker的原因是

  1FreeMarker是Struts缺少的模板引擎Struts的標簽大部分是使用FreeMarker的使用FreeMarker的話連Plugin都省去了

  2FreeMarker相對比較輕量級因為他本身只是一個模板引擎與JSF這樣一個大而全的WebFramework相對輕巧多了

  3FreeMarker的學習起來非常容易只要把他網站上的Document過一遍基本上就OK了

  4FreeMarker雖然體積小功能還是相當強的INConverter之類的東西基本都全了至少我所需要的功能全有

  5FreeMarker相當靈活他不象JSF把底層的東西封裝了以後暴露出一些屬性可以設置如果你需要的屬性不能設置你就沒有辦法了在FreeMarker你直接操作最底層的東西擁有很大的靈活性當然犧牲了一些方便性比如要用FreeMarker生成一個下拉框就需要較多的工作量了

  測試之後使用FreeMarker的性能很不錯在大數據量操作的情況下至少一個數量級的性能提升

  我的最終結論如果要在Struts展示或者操作大量數據強烈推薦使用FreeMarker

 


From:http://tw.wingwit.com/Article/program/Java/ky/201311/29080.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.