如何解决SpringBoot2.x版本对Velocity模板不⽀持的⽅案背景
在springboot1.4.x版本之前对velocity的模板⽀持的是相当好的,不⽌出于什么原因springboot从1.5.x以后停⽌了对velocity的⽀持,甚⾄在2.x版本中移除了和velocity的相关代码。⽬前⼿上有些项⽬使⽤的是velocity模板引擎,同时也使⽤了springboot,现在想升级到springboot2.x,同时还想继续使⽤velocity,怎么办?springboot不⽀持,就⾃⼰想办法⽀持下吧。思路:把springboot早期版本的velocity⽀持单独抽出⼀个jar。
步骤1:
git clone github/spring-projects/spring-framework.git
切换到 4.3.2.RELEASE 版本;拷贝org.springframework.ui.velocity和org.springframework.web.servlet.view.velocity 模块下velocity的相关代码;
步骤2:
git clone github/spring-projects/spring-boot.git
切换到v1.4.0.RELEASE;拷贝:org.springframework.boot.autoconfigure.velocity模块下 velocity的相关代码;
由于spring5.x及springboot2.x移除了velocity相关的代码及配置,还要把spring.vm⽂件拷贝过来,整体代码架构如下图:
直接编译打包
spring framework版本接⼊使⽤:
在项⽬中直接添加如下依赖:
<dependency>
<groupId>com.dianwoda.velocity</groupId>
<artifactId>spring-boot-velocity-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
并添加如下配置:
spring.velocity.charset=UTF-8
spring.velocity.ding=UTF-8
spring.velocity.ding=UTF-8
sourceLoaderPath=classpath:/templates/
spring.velocity.suffix=.vm
lbox-config-location=/l
在l中添加视图解析配置:
<!-- 设置视图解析⼯具 -->
<bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">
<property name="cache" value="false"/>
<property name="layoutUrl" value="layout/layout.vm"/>
<property name="prefix" value="/templates/"/>
<property name="suffix" value=".vm"/>
<property name="exposeSpringMacroHelpers" value="true"/>
<property name="contentType" value="text/html;charset=UTF-8"/>
<property name="viewClass" value="org.springframework.web.servlet.view.velocity.VelocityLayoutView"/>
</bean>
按照上述配置即可在springboot2.x项⽬中使⽤velocity模板,欢迎有需要的⼩伙伴试⽤,使⽤过程中有问题可以直接反馈给我、
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论