1. 程式人生 > >SpringBoot常用Starter介紹和整合模板引擎Freemaker、thymeleaf 4節課

SpringBoot常用Starter介紹和整合模板引擎Freemaker、thymeleaf 4節課

1、SpringBoot Starter講解

簡介:介紹什麼是SpringBoot Starter和主要作用

 

1、官網地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-starter

 

2、starter主要簡化依賴用的

spring-boot-starter-web->裡面包含多種依賴

 

3、幾個常用的starter

spring-boot-starter-activemq

spring-boot-starter-aop

spring-boot-starter-data-redis

spring-boot-starter-freemarker

spring-boot-starter-thymeleaf

spring-boot-starter-webflux

 

2、SpringBoot2.x常見模板引擎講解和官方推薦使用

簡介:介紹常用的SpringBoot2.x模板引擎和官方推薦案例

 

1、JSP(後端渲染,消耗效能)

Java Server Pages 動態網頁技術,由應用伺服器中的JSP引擎來編譯和執行,再將生成的整個頁面返回給客戶端

可以寫java程式碼

持表示式語言(el、jstl)

內建函式

JSP->Servlet(佔用JVM記憶體)permSize

javaweb官方推薦

springboot不推薦 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-jsp-limitations

 

2、Freemarker 

FreeMarker Template Language(FTL)  檔案一般儲存為 xxx.ftl

嚴格依賴MVC模式,不依賴Servlet容器(不佔用JVM記憶體)

內建函式

 

3、Thymeleaf (主推)

輕量級的模板引擎(處理複雜邏輯業務的不推薦,解析DOM或者XML會佔用多的記憶體)

可以直接在瀏覽器中開啟且正確顯示模板頁面

 

直接是html結尾,直接編輯

xdlcass.net/user/userinfo.html

社會工程學

偽裝

 

3、SpringBoot2.x整合模板引擎freemarker實戰

簡介:SpringBoot2.x整合模板引擎freemarker實戰

 

1、Freemarker相關maven依賴

<!-- 引入freemarker模板引擎的依賴 -->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-freemarker</artifactId>

        </dependency>

 

2、Freemarker基礎配置

# 是否開啟thymeleaf快取,本地為false,生產建議為true

spring.freemarker.cache=false

 

spring.freemarker.charset=UTF-8

spring.freemarker.allow-request-override=false

spring.freemarker.check-template-location=true

 

#型別

spring.freemarker.content-type=text/html

 

spring.freemarker.expose-request-attributes=true

spring.freemarker.expose-session-attributes=true

 

#檔案字尾

spring.freemarker.suffix=.ftl

#路徑

spring.freemarker.template-loader-path=classpath:/templates/

 

 

3、建立資料夾(通常在src/main/resources/templates/下)

1)src/main/resources/templates/fm/user/

2)建立一個index.ftl

3)user資料夾下面建立一個user.html

   4、簡單測試程式碼編寫和訪問

程式碼示例:

application.properties:

 1 web.images-path=L:/images
 2 spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path}
 3 #指定某些檔案不進行監聽,即不會進行熱載入devtool(重啟後不會監聽下面這個檔案)
 4 #spring.devtools.restart.exclude=application.properties
 5 
 6 #通過觸發器,去控制什麼時候進行熱載入部署新的檔案
 7 spring.devtools.restart.trigger-file=trigger.txt
 8 
 9 server.port=8083
10 
11 #檔案上傳路徑配置
12 web.file.path=L:/images
13 
14 #測試配置檔案注入
15 test.name=www.xdclass.net
16 test.domain=springboot
17 
18 #自定義啟動banner的路徑
19 spring.banner.location=banner.txt
20 
21 # 是否開啟freemarker快取,本地為false,生產建議為true
22 spring.freemarker.cache=false
23 
24 spring.freemarker.charset=UTF-8
25 spring.freemarker.allow-request-override=false
26 spring.freemarker.check-template-location=true
27 
28 #型別
29 spring.freemarker.content-type=text/html
30 
31 spring.freemarker.expose-request-attributes=true
32 spring.freemarker.expose-session-attributes=true
33         
34 #檔案字尾
35 spring.freemarker.suffix=.ftl
36 #路徑
37 spring.freemarker.template-loader-path=classpath:/templates/

FreemakerController.java:

 1 package net.xdclass.demo.controller;
 2 
 3 import net.xdclass.demo.domain.ServerSettings;
 4 
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.ui.ModelMap;
 8 import org.springframework.web.bind.annotation.GetMapping;
 9 import org.springframework.web.bind.annotation.RequestMapping;
10 
11 
12 @Controller
13 @RequestMapping("/freemaker")
14 public class FreemakerController {
15 
16     
17     @Autowired
18     private ServerSettings setting;
19 
20     
21     @GetMapping("hello")
22     public String index(ModelMap modelMap){
23         
24         modelMap.addAttribute("setting", setting);
25         
26         return "fm/index";  //不用加字尾,在配置檔案裡面已經指定了字尾
27     }
28     
29 
30 }

src/main/resources/templates/fm/index.ftl:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 </head>
 7 <body>
 8 freemaker整合,index.html頁面
 9 <h1>xdclass.net</h1>
10 
11 <h1> ${setting.name} </h1>
12 <h1> ${setting.domain} </h1>
13 
14 </body>
15 </html>

瀏覽器訪問:http://localhost:8083/freemaker/hello

結果:

freemaker整合,index.html頁面

xdclass.net

www.xdclass.net

 

springboot 

4、SpringBoot2.x整合模板引擎thymeleaf實戰

講解:SpringBoot2.x整合模板引擎thymeleaf實戰

 

官網地址:https://www.thymeleaf.org/doc/articles/thymeleaf3migration.html

1、thymeleaf相關maven依賴

<dependency>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

 

2、thymeleaf基礎配置

 

#開發時關閉快取,不然沒法看到實時頁面

spring.thymeleaf.cache=false

spring.thymeleaf.mode=HTML5

#字首

spring.thymeleaf.prefix=classpath:/templates/

#編碼

spring.thymeleaf.encoding=UTF-8

#型別

spring.thymeleaf.content-type=text/html

#名稱的字尾

spring.thymeleaf.suffix=.html

 

3、建立資料夾

1)src/main/resources/templates/tl/

2)建立一個index.html

 

4、簡單測試程式碼編寫和訪問

注意:$表示式只能寫在th標籤內部

快速入門:https://www.thymeleaf.org/doc/articles/standarddialect5minutes.html

程式碼示例:

application.properties:

 1 web.images-path=L:/images
 2 spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path},classpath:/templates/
 3 #指定某些檔案不進行監聽,即不會進行熱載入devtool(重啟後不會監聽下面這個檔案)
 4 #spring.devtools.restart.exclude=application.properties
 5 
 6 #通過觸發器,去控制什麼時候進行熱載入部署新的檔案
 7 spring.devtools.restart.trigger-file=trigger.txt
 8 
 9 server.port=8083
10 
11 #檔案上傳路徑配置
12 web.file.path=L:/images
13 
14 #測試配置檔案注入
15 test.name=www.xdclass.net
16 test.domain=springboot
17 
18 #自定義啟動banner的路徑
19 spring.banner.location=banner.txt
20 
21 # 是否開啟freemarker快取,本地為false,生產建議為true
22 #spring.freemarker.cache=false
23 #
24 #spring.freemarker.charset=UTF-8
25 #spring.freemarker.allow-request-override=false
26 #spring.freemarker.check-template-location=true
27 #
28 ##型別
29 #spring.freemarker.content-type=text/html
30 #
31 #spring.freemarker.expose-request-attributes=true
32 #spring.freemarker.expose-session-attributes=true
33 #        
34 ##檔案字尾
35 #spring.freemarker.suffix=.ftl
36 ##路徑
37 #spring.freemarker.template-loader-path=classpath:/templates/
38 
39 
40 #開發時關閉快取,不然沒法看到實時頁面
41 spring.thymeleaf.cache=false
42 spring.thymeleaf.mode=HTML5
43 #字首
44 spring.thymeleaf.prefix=classpath:/templates/
45 #編碼
46 spring.thymeleaf.encoding=UTF-8
47 #型別
48 spring.thymeleaf.servlet.content-type=text/html
49 #spring.thymeleaf.content-type=text/html
50 #名稱的字尾
51 spring.thymeleaf.suffix=.html

ThymeleafController.java:

 1 package net.xdclass.demo.controller;
 2 
 3 import net.xdclass.demo.domain.ServerSettings;
 4 
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.ui.ModelMap;
 8 import org.springframework.web.bind.annotation.GetMapping;
 9 import org.springframework.web.bind.annotation.RequestMapping;
10 
11 
12 @Controller
13 @RequestMapping("/tyhmeleaf")
14 public class ThymeleafController {
15 
16     
17     @Autowired
18     private ServerSettings setting;
19 
20     
21     @GetMapping("hello")
22     public String index(){
23         
24         
25         return "index";  //不用加字尾,在配置檔案裡面已經指定了字尾
26     }
27     
28     
29 
30     @GetMapping("info")
31     public String admin(ModelMap modelMap){
32         
33         modelMap.addAttribute("setting", setting);
34         
35         return "tl/admin/info";  //不用加字尾,在配置檔案裡面已經指定了字尾
36     }
37 }

src/main/resources/templates/tl/admin/info.html:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 </head>
 7 <body>
 8 模板引擎整合thymeleaf  admin/info.html
 9 
10 <h1 >測試內容,未加th表示式</h1>
11 <h1 th:text="${setting.name}">測試內容</h1>
12 <h1>xdclass.net</h1>
13 </body>
14 </html>

測試結果對比:

瀏覽器訪問:http://localhost:8083/tyhmeleaf/info

結果:

測試內容,未加th表示式

www.xdclass.net

 

xdclass.net

瀏覽器訪問:http://localhost:8083/tl/admin/info.html

結果:

模板引擎整合thymeleaf admin/info.html

測試內容,未加th表示式

測試內容

 

xdclass.net

========7、SpringBoot常用Starter介紹和整合模板引擎Freemaker、thymeleaf 4節課=========================
加入小D課堂技術交流答疑群:Q群:699347262

1、SpringBoot Starter講解簡介:介紹什麼是SpringBoot Starter和主要作用
1、官網地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-starter2、starter主要簡化依賴用的spring-boot-starter-web->裡面包含多種依賴
3、幾個常用的starterspring-boot-starter-activemqspring-boot-starter-aopspring-boot-starter-data-redisspring-boot-starter-freemarkerspring-boot-starter-thymeleafspring-boot-starter-webflux








2、SpringBoot2.x常見模板引擎講解和官方推薦使用簡介:介紹常用的SpringBoot2.x模板引擎和官方推薦案例
1、JSP(後端渲染,消耗效能)Java Server Pages 動態網頁技術,由應用伺服器中的JSP引擎來編譯和執行,再將生成的整個頁面返回給客戶端可以寫java程式碼持表示式語言(el、jstl)內建函式JSP->Servlet(佔用JVM記憶體)permSizejavaweb官方推薦springboot不推薦 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-jsp-limitations
2、Freemarker FreeMarker Template Language(FTL)  檔案一般儲存為 xxx.ftl嚴格依賴MVC模式,不依賴Servlet容器(不佔用JVM記憶體)內建函式
3、Thymeleaf (主推)輕量級的模板引擎(負責邏輯業務的不推薦,解析DOM或者XML會佔用多的記憶體)可以直接在瀏覽器中開啟且正確顯示模板頁面
直接是html結尾,直接編輯xdlcass.net/user/userinfo.html社會工程學偽裝






3、SpringBoot2.x整合模板引擎freemarker實戰簡介:SpringBoot2.x整合模板引擎freemarker實戰
1、Freemarker相關maven依賴<!-- 引入freemarker模板引擎的依賴 -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-freemarker</artifactId>        </dependency>
2、Freemarker基礎配置# 是否開啟thymeleaf快取,本地為false,生產建議為truespring.freemarker.cache=false
spring.freemarker.charset=UTF-8spring.freemarker.allow-request-override=falsespring.freemarker.check-template-location=true#型別spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=truespring.freemarker.expose-session-attributes=true#檔案字尾spring.freemarker.suffix=.ftl#路徑spring.freemarker.template-loader-path=classpath:/templates/
3、建立資料夾1)src/main/resources/templates/fm/user/2)建立一個index.ftl3)user資料夾下面建立一個user.html


4、簡單測試程式碼編寫和訪問
4、SpringBoot2.x整合模板引擎thymeleaf實戰講解:SpringBoot2.x整合模板引擎thymeleaf實戰
官網地址:https://www.thymeleaf.org/doc/articles/thymeleaf3migration.html1、thymeleaf相關maven依賴<dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
2、thymeleaf基礎配置
#開發時關閉快取,不然沒法看到實時頁面spring.thymeleaf.cache=falsespring.thymeleaf.mode=HTML5#字首spring.thymeleaf.prefix=classpath:/templates/#編碼spring.thymeleaf.encoding=UTF-8#型別spring.thymeleaf.content-type=text/html#名稱的字尾spring.thymeleaf.suffix=.html
3、建立資料夾1)src/main/resources/templates/tl/2)建立一個index.html
4、簡單測試程式碼編寫和訪問注意:$表示式只能寫在th標籤內部快速入門:https://www.thymeleaf.org/doc/articles/standarddialect5minutes.html