爲了應對在SpringBoot中的高併發及優化訪問速度,咱們通常會把頁面上的數據查詢出來,而後放到redis中進行緩存。減小數據庫的壓力。html
在SpringBoot中通常使用前端
thymeleafViewResolver.getTemplateEngine().process("goodlist", ctx);git
進行頁面的渲染,而這個ctx就是SpringWebContext對象,咱們通常進行以下獲取:程序員
SpringWebContext swc=new SpringWebContext(request,response,request.getServletContext(),request.getLocale(),model.asMap(),applicationContext);github
在SpringBoot 1.X的版本中以上代碼可使用。但在SpringBoot 2.0中,就沒法找到SpringWebContext了。那應該如何去解決這個問題呢?redis
說一下個人思路,.process方法中ctx所在參數所須要的類型爲接口IContext數據庫
也就是須要有實現了IContext的類就能夠了,而後進入IContext接口找全部的實現類後端
而後看到WebContext彷佛有些像上面所用的SpringWebContext。即作出以下改變,完美實現了thymeleaf的頁面渲染。緩存
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
歡迎點擊Start哦
1.後端:SpringBoot、JSR30三、MyBatis
2.前端:Thymeleaf、BootStrap、Jquery
3.中間件:RabbitMQ、Redis、Druid