前言
為了應對在springboot中的高并發及優化訪問速度,我們一般會把頁面上的數據查詢出來,然后放到redis中進行緩存。減少數據庫的壓力。
在springboot中一般使用
1
|
thymeleafviewresolver.gettemplateengine().process( "goodlist" , ctx); |
進行頁面的渲染,而這個ctx就是springwebcontext對象,我們一般進行如下獲取:
1
|
springwebcontext swc= new springwebcontext(request,response,request.getservletcontext(),request.getlocale(),model.asmap(),applicationcontext); |
在springboot 1.x的版本中以上代碼可以使用。但在springboot 2.0中,就無法找到springwebcontext了。那應該如何去解決這個問題呢?
解決思路
說一下我的思路,.process方法中ctx所在參數所需要的類型為接口icontext
也就是需要有實現了icontext的類就可以了,然后進入icontext接口找所有的實現類
然后看到webcontext似乎有些像上面所用的springwebcontext。即做出如下改變,完美實現了thymeleaf的頁面渲染。
1
2
|
webcontext ctx = new webcontext(request, response, request.getservletcontext(), request.getlocale(), model.asmap()); html = thymeleafviewresolver.gettemplateengine().process( "goodlist" , ctx); |
在springboot 2.0中使用上述代碼,可以完全替代。
(當然在下不才,暫時只找到了這種辦法,在網絡上也沒找到對應的比較不錯的策略。所以分享出來,以備分享出來,幫助遇到此問題的程序員們。如果大家有什么更好的處理辦法可以一起互相交流哦)
目前我正在搞基于springboot、redis、消息隊列的秒殺小項目,主要還是為了梳理如何解決高并發的問題過程。
github:https://github.com/iquanzhan/seckillshop
所用技術
1.后端:springboot、jsr303、mybatis
2.前端:thymeleaf、bootstrap、jquery
3.中間件:rabbitmq、redis、druid
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:https://juejin.im/post/5c039b2ef265da61682b1e9e