最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?Boot?整合?FreeMarker?實例分享

 更新時間:2022年05月23日 11:14:50   作者:??村雨遙????  
這篇文章主要分享了Spring?Boot整合FreeMarker?實例FreeMarker是一款模板引擎,即一種基于模板和要改變的數(shù)據(jù),并用來生成輸出文本,更多相關(guān)介紹需要的小伙伴可以參考下面文章內(nèi)容

一、前言

在之前的文章Spring Boot 整合 Thymeleaf 實例分享中,我們學習了如何將模板 Thymeleaf 整合到 Spring Boot 中,那今天我們就來看看,另一個老牌的開源免費模板引擎 - FreeMarker!

二、FreeMarker 簡介

FreeMarker 是一款模板引擎:即一種基于模板和要改變的數(shù)據(jù),并用來生成輸出文本(HTML網(wǎng)頁,電子郵件,配置文件,源代碼等)的通用工具。 它不是面向最終用戶的,而是一個Java類庫,是一款程序員可以嵌入他們所開發(fā)產(chǎn)品的組件。

以上就是出自 FreeMarker 的官方定義,我們通過使用 FreeMarker,可以將我們所需的模板何數(shù)據(jù)渲染成 HTML,從而實現(xiàn)我們想要的效果。通過將模板與數(shù)據(jù)分開,讓分工更加明確,模板方面則專注于如何將數(shù)據(jù)進行展現(xiàn),而在數(shù)據(jù)方面,我們就可以專注于展示何種數(shù)據(jù),下圖就是我們以上所描述的 FreeMarker 的功能。

那接下來,我們就來看看,如何將 FreeMarker 像 Thymeleaf 一樣整合到我們的 Spring Boot 中,讓我們的開發(fā)更加簡單。

三、準備工作

環(huán)境準備

正式開始之前,依然給出本文所基于的環(huán)境,避免環(huán)境問題可能給大家?guī)淼挠绊憽?/p>

  • JDK 17(理論上推薦不低于 1.8 版本)
  • IDEA
  • SpringBoot 2.x

添加 FreeMarker 依賴

開始之前,我們需要添加 FreeMarker 的相關(guān)依賴,同樣這里我們可以選擇兩種方式。一種是在創(chuàng)建項目時就添加上,另一種則是創(chuàng)建項目后在項目 pom.xml 文件中手動添加,接下來我們分別來看看兩種不同的方式應該如何添加。如果還不清楚如何創(chuàng)建 Spring Boot 項目,可以參照我之前的一篇文章:Spring Boot 教程之創(chuàng)建項目的三種方式

  • 第一種

在使用 IDEA 創(chuàng)建 Spring Boot 新項目時,添加依賴時將模板引擎中的 Apache FreeMarker 勾選上。

2.第二種

如果在創(chuàng)建時未添加 FreeMarker 模板引擎依賴,或者在項目開始創(chuàng)建之初并未有此需求,但后續(xù)過程中又增加了該需求,則此時可以直接在項目 pom.xml 中手動添加 FreeMarker 依賴即可。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

添加 FreeMarker 相關(guān)配置

添加依賴后,我們需要在項目配置文件 application.yml 中添加 FreeMarker 的相關(guān)配置。

spring:
  freemarker:
    # 模板后綴名
    suffix: .ftl
    # 文檔類型
    content-type: text/html
    # 頁面編碼
    charset: UTF-8
    # 頁面緩存
    cache: false
    # 模板路徑
    template-loader-path: classpath:/templates/

四、編寫實體類和 Controller

編寫實體類

創(chuàng)建一個 User 類,并將其各種 settergetter、構(gòu)造方法等完成,這里我依然使用了 Lombok 插件,以便簡化我們的代碼。關(guān)于該插件的更多用法,可以參照我之前的文章:Lombok 安裝和使用小技巧

package com.cunyu.springbootfreemarkerdemo.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int age;
    private String name;
    private String email;
}

編寫 Controller

這里我們創(chuàng)建一個 User 對象,然后設(shè)置其年齡、Email、姓名等相關(guān)信息,然后將其加到屬性中,方便傳輸?shù)角岸诉M行展示。

package com.cunyu.springbootfreemarkerdemo.controller;
import com.cunyu.springbootfreemarkerdemo.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class UserController {
    @GetMapping("/index")
    public String index(Model model) {
        User user = new User();
        user.setAge(26);
        user.setEmail("747731461@qq.com");
        user.setName("村雨遙");
        model.addAttribute("user", user);
        return "index";
    }
}

數(shù)據(jù)渲染

當完成實體類和 Controller 編寫后,我們就可以利用模板來進行展示了。我們在項目的 resources/templates 路進行新建一個 index.ftl 文件,注意這里文件名要保持和 Controller 中 index 方法所返回的字符串一致。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>FreeMarker 實驗</title>
</head>
<body>
    <table>
        <tr>
            <td>姓名</td>
            <td>年齡</td>
            <td>Email</td>
        </tr>
        <tr>
            <td>${user.name}</td>
            <td>${user.age}</td>
            <td>${user.email}</td>
        </tr>
    </table>
</body>
</html>

五、總結(jié)

我們可以結(jié)合之前的文章:Spring Boot 整合 Thymeleaf 實例分享共同閱讀,對比 Thymeleaf 和 FreeMarker 在整合過程中的一些共同點和不同點,相信你會有更多的收獲。

到此這篇關(guān)于Spring Boot 整合 FreeMarker 實例分享的文章就介紹到這了,更多相關(guān)Spring Boot 整合 FreeMarker 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring?Boot實現(xiàn)消息的發(fā)送和接收使用實戰(zhàn)指南

    Spring?Boot實現(xiàn)消息的發(fā)送和接收使用實戰(zhàn)指南

    這篇文章主要為大家介紹了Spring?Boot實現(xiàn)消息的發(fā)送和接收使用實戰(zhàn)指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Lucene詞向量索引文件構(gòu)建源碼解析

    Lucene詞向量索引文件構(gòu)建源碼解析

    這篇文章主要為大家介紹了Lucene詞向量索引文件構(gòu)建源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Spring Cloud項目前后端分離跨域的操作

    Spring Cloud項目前后端分離跨域的操作

    這篇文章主要介紹了Spring Cloud項目前后端分離跨域的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java中邏輯控制舉例具體講解

    java中邏輯控制舉例具體講解

    Java程序邏輯控制通俗說就是對代碼執(zhí)行順序的控制,這篇文章主要給大家介紹了關(guān)于java中邏輯控制的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • java并發(fā)編程之深入理解Synchronized的使用

    java并發(fā)編程之深入理解Synchronized的使用

    文詳細講述了線程、進程的關(guān)系及在操作系統(tǒng)中的表現(xiàn),這是多線程學習必須了解的基礎(chǔ)。本文將接著講一下Java線程同步中的一個重要的概念synchronized,希望能夠給你有所幫助
    2021-06-06
  • 基于Java 注解(Annotation)的基本概念詳解

    基于Java 注解(Annotation)的基本概念詳解

    基于Java 注解(Annotation)的基本概念詳解
    2013-04-04
  • Java基礎(chǔ)類Class使用指南

    Java基礎(chǔ)類Class使用指南

    關(guān)于通過類名訪問class屬性,我朋友問過好幾次了,一直沒明白這個東西到底是什么?對此,我參照網(wǎng)友們的博客,總結(jié)了一些小知識,如發(fā)現(xiàn)錯誤,希望糾正,謝謝
    2015-12-12
  • Spring?MVC的完整執(zhí)行流程和常用組件詳解

    Spring?MVC的完整執(zhí)行流程和常用組件詳解

    SpringMvc是Spring的一個基于MVC開發(fā)的一個框架,用來處理前端請求,可以和Spring無縫整合,下面這篇文章主要給大家介紹了關(guān)于Spring?MVC的完整執(zhí)行流程和常用組件的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • QueryWrapper中or的使用技巧分享

    QueryWrapper中or的使用技巧分享

    在日常的開發(fā)工作中,處理數(shù)據(jù)庫查詢是一個非常常見的任務,尤其是當我們需要在復雜條件下篩選數(shù)據(jù)時,如何編寫高效、簡潔且可維護的查詢邏輯顯得尤為重要,本文給大家介紹了QueryWrapper中or的使用技巧,需要的朋友可以參考下
    2024-10-10
  • java壓縮文件和下載圖片示例

    java壓縮文件和下載圖片示例

    這篇文章主要為大家詳細介紹了java壓縮文件和下載圖片示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評論

广饶县| 闻喜县| 泰兴市| 娱乐| 肃宁县| 无锡市| 沁阳市| 三明市| 绥棱县| 全椒县| 吉林省| 本溪| 扎鲁特旗| 丽水市| 马鞍山市| 乌拉特前旗| 溧阳市| 巴彦县| 瓦房店市| 东乌珠穆沁旗| 武夷山市| 松阳县| 蓬溪县| 白城市| 珲春市| 淮南市| 沁源县| 宁乡县| 大同市| 南阳市| 洪洞县| 大冶市| 彭阳县| 溧阳市| 平江县| 师宗县| 石楼县| 揭东县| 昌江| 平阳县| 定结县|