SpringWebContext方法过时
今天在做项目的时候,为了优化访问速度,应对高并发,想把页面信息全部获取出来存到redis缓存中,这样每次访问就不用客户端进行渲染了,速度能快不少。
想用thymeleafViewResolver.getTemplateEngine().process("goodslist.html",ctx);
函数实现,里面有一个ctx参数,这个参数就是WebContext
然后定义这个变量 SpringWebContext ctx = new SpringWebContext(......)
哎,这个方法在SpringBoot1.X的时候还能有,在org.thymeleaf.spring4.context这个package下,在、SpringBoot2.X +thymeleaf3.0.9 中没有,想去找一下用什么来代替,直接去org.thymeleaf.spring4下面去找,没找到相同类型的,然后取找thymeleaf.spring5的API,还找不到,只能找到thymeleaf.spring4的API,。想想还要用,怎么办啊,总不能把版本切换了吧,那有些别的说不定也得改,自己写吧,自力更生艰苦奋斗。
找了之前的一个项目,然后找到了那里面的SpringWebContext是怎么写的,超过来就完了,
但是不行SpringWebContext继承的是org.thymeleaf.context下的WebContext方法,在SpringBoot2.0+thymeleaf3.0.9中定义成final类型的,不能继承,想想要不把库的代码改了,还是算了,再往上找,找到这个WebContext extends AbstractContext implements IWebContext
,没有final,所以一层一层的找到之后,按照他的源码改了一下,自己重写了SpringWebContext方法,如下
1 | package com.springboot.SecKill.util; |
其中的ContexBeans是自己定义的,如下:
1 | package com.springboot.SecKill.util; |
这样就能用了。