在咱們開發Web應用的時候,須要引用大量的js、css、圖片等靜態資源。css
Spring Boot默認提供靜態資源目錄位置需置於classpath下,目錄名需符合以下規則:html
舉例:咱們能夠在src/main/resources/
目錄下建立static
,在該位置放置一個圖片文件。啓動程序後,嘗試訪問http://localhost:8080/D.jpg
。如能顯示圖片,配置成功。java
在以前的示例中,咱們都是經過@RestController來處理請求,因此返回的內容爲json對象。那麼若是須要渲染html頁面的時候,要如何實現呢?spring
在動態HTML實現上Spring Boot依然能夠完美勝任,而且提供了多種模板引擎的默認配置支持,因此在推薦的模板引擎下,咱們能夠很快的上手開發動態網站。json
Spring Boot提供了默認配置的模板引擎主要有如下幾種:後端
Spring Boot建議使用這些模板引擎,避免使用JSP,若必定要使用JSP將沒法實現Spring Boot的多種特性,具體可見後文:支持JSP的配置瀏覽器
當你使用上述模板引擎中的任何一個,它們默認的模板配置路徑爲:src/main/resources/templates
。固然也能夠修改這個路徑,具體如何修改,可在後續各模板引擎的配置屬性中查詢並修改。spring-boot
Thymeleaf是一個XML/XHTML/HTML5模板引擎,可用於Web與非Web環境中的應用開發。它是一個開源的Java庫,基於Apache License 2.0許可,由Daniel Fernández建立,該做者仍是Java加密庫Jasypt的做者。網站
Thymeleaf提供了一個用於整合Spring MVC的可選模塊,在應用開發中,你可使用Thymeleaf來徹底代替JSP或其餘模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目標在於提供一種可被瀏覽器正確顯示的、格式良好的模板建立方式,所以也能夠用做靜態建模。你可使用它建立通過驗證的XML與HTML模板。相對於編寫邏輯或代碼,開發者只需將標籤屬性添加到模板中便可。接下來,這些標籤屬性就會在DOM(文檔對象模型)上執行預先制定好的邏輯。加密
示例模板:
<table> <thead> <tr> <th th:text="#{msgs.headers.name}">Name</td> <th th:text="#{msgs.headers.price}">Price</td> </tr> </thead> <tbody> <tr th:each="prod : ${allProducts}"> <td th:text="${prod.name}">Oranges</td> <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td> </tr> </tbody> </table>
能夠看到Thymeleaf主要以屬性的方式加入到html標籤中,瀏覽器在解析html時,當檢查到沒有的屬性時候會忽略,因此Thymeleaf的模板能夠經過瀏覽器直接打開展示,這樣很是有利於先後端的分離。
在Spring Boot中使用Thymeleaf,只須要引入下面依賴,並在默認的模板路徑src/main/resources/templates
下編寫模板文件便可完成。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
完整項目的源碼來源 技術支持1791743380