如何解决SpringBoot2.x版本对Velocity模板不支持的方案

 更新时间:2018年12月02日 11:49:19   作者:郭武  
这篇文章主要介绍了如何解决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 https://github.com/spring-projects/spring-framework.git

切换到 4.3.2.RELEASE 版本;拷贝org.springframework.ui.velocity和org.springframework.web.servlet.view.velocity 模块下velocity的相关代码;

步骤2:

git clone https://github.com/spring-projects/spring-boot.git

切换到v1.4.0.RELEASE;拷贝:org.springframework.boot.autoconfigure.velocity模块下 velocity的相关代码;

由于spring5.x及springboot2.x移除了velocity相关的代码及配置,还要把spring.vm文件拷贝过来,整体代码架构如下图:

直接编译打包

接入使用:

在项目中直接添加如下依赖:

<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.properties.input.encoding=UTF-8 
spring.velocity.properties.output.encoding=UTF-8 
spring.velocity.resourceLoaderPath=classpath:/templates/ 
spring.velocity.suffix=.vm 
spring.velocity.toolbox-config-location=/WEB-INF/toolbox.xml 

在spring.xml中添加视图解析配置:

<!-- 设置视图解析工具 --> 
  <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模板,欢迎有需要的小伙伴试用,使用过程中有问题可以直接反馈给我、

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java8如何用Stream查List对象某属性是否有重复

    java8如何用Stream查List对象某属性是否有重复

    这篇文章主要介绍了java8如何用Stream查List对象某属性是否有重复的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 详解Java中“==”与equals()的区别

    详解Java中“==”与equals()的区别

    这篇文章主要介绍了详解Java中“==”与equals()的区别的相关资料,需要的朋友可以参考下
    2017-02-02
  • SpringBoot整合liquibase的实现方法

    SpringBoot整合liquibase的实现方法

    这篇文章主要介绍了SpringBoot整合liquibase的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • JVM双亲委派模型知识详细总结

    JVM双亲委派模型知识详细总结

    今天带各位小伙伴学习Java虚拟机的相关知识,文中对JVM双亲委派模型作了非常详细的介绍,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Java应用EasyExcel工具类

    Java应用EasyExcel工具类

    这篇文章主要介绍了Java应用EasyExcel工具类,文中有非常详细的代码示例,对正在学习java的小伙伴们有一定的帮助,需要的朋友可以参考下
    2021-05-05
  • @Scheduled 如何读取动态配置文件

    @Scheduled 如何读取动态配置文件

    这篇文章主要介绍了@Scheduled 如何读取动态配置文件的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • SpringBoot实现重试机制的四种方案

    SpringBoot实现重试机制的四种方案

    在分布式系统和微服务架构中,服务调用失败是不可避免的现象,网络不稳定、服务过载、临时故障等因素都可能导致调用失败,重试机制作为一种处理临时性故障的解决方案,能够有效提高系统的可用性,需要的朋友可以参考下
    2025-04-04
  • IDEA类和方法注释模板设置(非常详细)

    IDEA类和方法注释模板设置(非常详细)

    这篇文章主要介绍了IDEA类和方法注释模板设置(非常详细),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • SpringBoot配置文件中数据库密码加密两种方案(推荐)

    SpringBoot配置文件中数据库密码加密两种方案(推荐)

    SpringBoot项目经常将连接数据库的密码明文放在配置文件里,安全性就比较低一些,尤其在一些企业对安全性要求很高,因此我们就考虑如何对密码进行加密,文中给大家介绍加密的两种方式,感兴趣的朋友一起看看吧
    2019-10-10
  • Java实现synchronized锁同步机制

    Java实现synchronized锁同步机制

    synchronized是java内置的同步锁实现,本文就详细的介绍一下Java实现synchronized锁同步机制,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11

最新评论