1. 程式人生 > >velocity使用——SpringBoot版本由1.5.9變為1.3.5出現問題

velocity使用——SpringBoot版本由1.5.9變為1.3.5出現問題

1. 背景
Velocity是一個基於Java的模板引擎,通過特定的語法,Velocity可以獲取在java語言中定義的物件,從而實現介面和java程式碼的真正分離,這意味著可以使用velocity替代jsp的開發模式了。這使得前端開發人員可以和 Java 程式開發人員同步開發一個遵循 MVC 架構的 web 站點,在實際應用中,velocity還可以應用於很多其他的場景.
2. 專案需求
開發環境: jdk 1.8
spring boot 1.5.9
intellij IDEA
在專案開發過程中,需要使用velocity,一個基於Java的模板引擎,其提供了一個Context容器,在java程式碼裡面我們可以往容器中存值,然後在vm檔案中使用特定的語法獲取。
例如:由於缺少velocity模板,不可識別VM語法:
這裡寫圖片描述


vm檔案如下:

<html>
<body>
<pre>
Hello VM.
$!{value1}  ##value1傳過來了
$!{value2}  ##value2沒有,不顯示,template的特性
${value3}
</pre>
</body>
</html>

由於velocity在1.5版本之後已經不支援此模板,所以使用,需要修改版本,以及新增配置檔案,修改test檔案。

  • pom.xml中修改
<parent>
<groupId>org.springframework.boot</groupId
>
<artifactId>spring-boot-starter-parent</artifactId> <version>1.3.5.RELEASE</version> <!--版本原為1.5.9--> <relativePath/> <!-- lookup parent from repository --> </parent>
  • 新增依賴:
            <groupId>org.springframework.boot</groupId>
            <artifactId
>
spring-boot-starter-velocity</artifactId> </dependency>
  • ApplicationTest檔案修改
    因為pom檔案中版本改為1.3.5以後,在test檔案中的測試檔案中的SpringBootTest就不能識別。
    如:@SpringBootTest註解是SpringBoot自1.4.0版本開始引入的一個用於測試的註解。所以要把test檔案中的測試程式碼,改為1.3.5支援的測試程式碼,標頭檔案,檔案包等。
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;  //也就是這行
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class ToutiaoApplicationTests {

    @Test
    public void contextLoads() {
    }

}

將其修改為1.3.5版本支援的測試註解:

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = ToutiaoApplication.class)
@WebAppConfiguration
public class ToutiaoApplicationTests {

    @Test
    public void contextLoads() {
    }

}
  • 結果顯示:
  • 這裡寫圖片描述