如何解決SpringBoot2.x版本對Velocity模板不支持的方案
背景
在springboot1.4.x版本之前對velocity的模板支持的是相當(dāng)好的,不止出于什么原因springboot從1.5.x以后停止了對velocity的支持,甚至在2.x版本中移除了和velocity的相關(guān)代碼。目前手上有些項目使用的是velocity模板引擎,同時也使用了springboot,現(xiàn)在想升級到springboot2.x,同時還想繼續(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的相關(guān)代碼;
步驟2:
git clone https://github.com/spring-projects/spring-boot.git
切換到v1.4.0.RELEASE;拷貝:org.springframework.boot.autoconfigure.velocity模塊下 velocity的相關(guān)代碼;
由于spring5.x及springboot2.x移除了velocity相關(guān)的代碼及配置,還要把spring.vm文件拷貝過來,整體代碼架構(gòu)如下圖:

直接編譯打包
接入使用:
在項目中直接添加如下依賴:
<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中添加視圖解析配置:
<!-- 設(shè)置視圖解析工具 -->
<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模板,歡迎有需要的小伙伴試用,使用過程中有問題可以直接反饋給我、
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解使用Mybatis-plus + velocity模板生成自定義的代碼
- c#基于NVelocity實現(xiàn)代碼生成
- SiteMesh如何結(jié)合Freemarker及velocity使用
- Vue中JS動畫與Velocity.js的結(jié)合使用
- SpringBoot與velocity的結(jié)合的示例代碼
- 聊聊JS動畫庫 Velocity.js的使用
- springMVC+velocity實現(xiàn)仿Datatables局部刷新分頁方法
- 詳解velocity模板使javaWeb的html+js實現(xiàn)模塊化
- Mybatis velocity腳本的使用教程詳解(推薦)
- JAVA velocity模板引擎使用實例
- html文件中jquery與velocity變量中的$沖突的解決方法
- Java 如何使用Velocity引擎生成代碼
相關(guān)文章
java8如何用Stream查List對象某屬性是否有重復(fù)
這篇文章主要介紹了java8如何用Stream查List對象某屬性是否有重復(fù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
SpringBoot整合liquibase的實現(xiàn)方法
這篇文章主要介紹了SpringBoot整合liquibase的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
SpringBoot實現(xiàn)重試機(jī)制的四種方案
在分布式系統(tǒng)和微服務(wù)架構(gòu)中,服務(wù)調(diào)用失敗是不可避免的現(xiàn)象,網(wǎng)絡(luò)不穩(wěn)定、服務(wù)過載、臨時故障等因素都可能導(dǎo)致調(diào)用失敗,重試機(jī)制作為一種處理臨時性故障的解決方案,能夠有效提高系統(tǒng)的可用性,需要的朋友可以參考下2025-04-04
SpringBoot配置文件中數(shù)據(jù)庫密碼加密兩種方案(推薦)
SpringBoot項目經(jīng)常將連接數(shù)據(jù)庫的密碼明文放在配置文件里,安全性就比較低一些,尤其在一些企業(yè)對安全性要求很高,因此我們就考慮如何對密碼進(jìn)行加密,文中給大家介紹加密的兩種方式,感興趣的朋友一起看看吧2019-10-10
Java實現(xiàn)synchronized鎖同步機(jī)制
synchronized是java內(nèi)置的同步鎖實現(xiàn),本文就詳細(xì)的介紹一下Java實現(xiàn)synchronized鎖同步機(jī)制,具有一定的參考價值,感興趣的可以了解一下2021-11-11

