最近在对项目进行技改,有些应用涉及到一些新的技术构架或组件,涉及到spring jar的冲突,因此需要将spring需要进行升级到更高版本(如5.2.7.RELEASE),原来模板引擎使用了velocity。一方面spring5已经不支持velocity, 另一方面换模板引擎代价有点大, 那么如何让spring5支持velocity了?
其实方案很简单,直接将spring4中已经支持velocity的相关代码拷贝出来,具体如下:
一、引入veclity的依赖
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>${version2}</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>${version2}</version>
</dependency>
二、将spring4中velocity源代码引入到应用中
涉及到的类如下: 仅需要将spring4中原有的这9个类引入到应用中(改下package就行),同时修velocimacro.library的路径,将 org/springframework/web/servlet/view/velocity/spring.vm 拷贝到VelocityConfigurer属性resourceLoaderPath的目录下,如在升级过程中,我将spring.vm转入classes目录resourceLoaderPath指定目录下的system中。
其他操作都不需要了,这样就完美实现spring4支持的velocity在spring5中可以了。