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