如何让spring5.x支持velocity
Posted 石工记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让spring5.x支持velocity相关的知识,希望对你有一定的参考价值。
新版spring5.0已经移除了对velocity的支持,下面就说说如何让spring5.x支持velocity。
spring从4.3开始不再支持velocity,官方说法是:Velocity 1.7 dates back to 2010. After more than five years of no
maintenance in the original project, it's about time to deprecate Velocity support on Spring's side.
来自:https://jira.spring.io/browse/SPR-13235
解决步骤:
一、jdk版本:jdk1.8
二、spring版本:5.0.0.RELEASE
三、pom依赖:
<jackson.version>2.9.0</jackson.version>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>$jackson.version</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>$jackson.version</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>$jackson.version</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
以上是jackson的版本,不是主要因素。
下面是velocity依赖:
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>2.0</version>
<exclusions>
<exclusion>
<artifactId>struts-core</artifactId>
<groupId>org.apache.struts</groupId>
</exclusion>
<exclusion>
<artifactId>struts-taglib</artifactId>
<groupId>org.apache.struts</groupId>
</exclusion>
<exclusion>
<artifactId>struts-tiles</artifactId>
<groupId>org.apache.struts</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>velocity-tools</groupId>
<artifactId>velocity-tools-view</artifactId>
<version>1.4</version>
</dependency>
四、补充spring、velocity源代码到工程里
spring代码来自spring-framework-4.2.8.RELEASE,velocity代码来自velocity-tools-view 1.4。补上之后的代码结构如下:
其中,把velocity-tools-view中的两个类单独拿出来是为了覆盖velocity-tools中的deprecated同名类。这两个类位置如下:
这样,spring5.0就重新支持velocity了。其实,从上面可以看到,我们所做的就是把spring删掉的velocity那部分代码又给添加上了而已。
以上是关于如何让spring5.x支持velocity的主要内容,如果未能解决你的问题,请参考以下文章
velocity 是如何实现introspector 自醒来屏蔽反射的