SpringBoot靜態資源訪問+攔截器+Thymeleaf模板引擎實現簡單登錄

在此記錄一下這十幾天的學習狀況,卡在模板引擎這裏已是四天了。 對Springboot的配置有一個比較深入的認識,在此和你們分享一下初學者入門Spring Boot的注意事項,若是是初學SpringBoot,或者有意向學習Springboot的朋友,這篇文章能夠簡單的來幫助你,處理一些沒必要要的麻煩。html

開發環境:數組

  IDea瀏覽器

  JDK1.8學習

  SpringBoot2+測試

  Maven3.5spa

  一、配置Maven3d

  首先咱們打開IdeA咱們重新建一個項目開始。SpringBoot是基於Maven來管理Jar包的。首先咱們須要在Idea中配置咱們Maven的本地倉庫位置日誌

  

  這是我本地Maven的安裝目錄,Idea集成了Maven,實際上是不用配置的,這裏簡述一下配置Maven的步驟xml

  打開Maven安裝目錄下 /conf/文件夾下的     settings.xmlhtm

這個是Maven的配置文件,咱們能夠在其中的  以下.

將上面的默認本地倉庫位置作一個替換,能夠從上圖看到咱們的本地倉庫位置。 以後咱們在項目中,就能夠經過Pom.xml將咱們須要的JAr 配置到Maven中,而且由Maven來管理咱們的Jar包

注意,每次更新Pom文件的時候,建議刷新一下當前的Maven項目。

  首先咱們來配置本身的本地倉庫 ,咱們在Idea的主界面打開設置

注意,若是是在項目頁面進行設置的話生效的是當前的項目,若是是在Idea主界面進行設置的話,那麼生效的是整個IDea

咱們在搜索框中輸入Maven而後出現如下界面,找到本身的Maven的安裝目錄

而且指定本身的Maven配置文件

而後咱們建立一個SpringBoot的項目,幸運的是,SpringBoot支持快速構建Maven項目咱們

注意:這一步須要聯網來下載組件!

咱們能夠在以下的界面選擇咱們項目須要引入的組件,而且來引入須要的Start

咱們這裏選用的tymeleaf的模板引擎和 Web的支持

項目骨架:

靜態資源訪問的問題,SpringBoot自動將  以下幾個文件夾做爲整個項目的靜態資源文件夾優先級自高至低以下

"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
"/":當前項目的根路徑

咱們將準備好的圖片分別放到如上幾個文件夾上,用來測試訪問路徑優先級:

 

 同時:咱們經過查看 SpringBoot 自動配置中的 Thymeleaf源碼得知如下:

解析前綴以及後綴和默認路徑,同時,文件名爲Index.html的文件默認被識別爲當前項目的主頁:

區別於Jsp的不一樣是 Thymeleaf使用.html後綴的頁面來進行展現,咱們須要在頁面上引入thymeleaf的命名空間     

xmlns:th="http://www.thymeleaf.org"   你不引入也是能夠的可是沒有快捷提示!

咱們在頁面上 添加了一個Img 同時啓動SpringBoot

啓動成功:

能夠看到圖片能夠正常的訪問,同時Thymeleaf解析的就是咱們類路徑下的  templates文件夾,同時爲index.html的頁面會被解析爲首頁。

篇幅有限,這裏僅對SpringBoot靜態資源有一個簡單的介紹,有興趣的小夥伴能夠將圖片路徑作個更改一一嘗試。

而且這裏有一點須要注意的是,在是同thymeleaf引入資源的時候不須要加 當前靜態資源文件夾的名字,例如

如上簡單的頁面訪問咱們已經搞定了,如今解決一下 攔截器和拓展Spring Boot配置時 靜態資源失效的問題

首先咱們先建立一個自定義的攔截器,注意,是在SpringBoot啓動類同級別的目錄下建立的,這裏牽扯了一個SpringBoot的自動裝配原理,默認掃描了SpringBoot啓動類同級別的文件和其子包,感興趣的同窗能夠去看一下SpringBoot的自動裝配原理。

 

而後咱們在自定義的攔截器中使用日誌來記錄,這裏是使用了slf4J和其實現logbak

層次圖以下

 

 想讓咱們的自定義攔截器生效,還不行,咱們須要寫一個自定義配置類來完成咱們的操做  以下圖,有兩種方式來幫助咱們拓展配置,注意,這是在SpringBoot2.0以後  廢棄了原有的    WebMvcConfigurerAdapter

這裏選用的是第一種方法,同時對攔截器進行配置攔截全部資源測試日誌輸出。  同時還能夠對不須要攔截的資源作排除,注意下這個形參的參數類型。能夠傳入數組 

以後即是對攔截器的測試:

咱們在瀏覽器訪問默認端口後  發現頁面 404  觀看控制檯後發現 攔截器生效 ,即日誌已經打印。

那麼咱們的Index首頁去哪了呢?
咱們首先看一下訪問不到的頁面:

 

 後來咱們知道是攔截器在做怪,咱們添加一個視圖映射就能夠解決找不到主頁的問題了:

成功訪問:

成功訪問,此次的心得就分享到這裏了,但願能幫到你們,必定要注意上面我說到的知識點,若是對哪個知識點不熟悉的話,必定要多查資料,多思考,想一想爲何這麼作,

今天也正好是你們初一,給你們拜個年,新年快樂。祝你們在新的一年裏,編譯一遍過,運行無Bug,最後有一句話送給你們:不積跬步,無以致千里

Java交流羣 682677231

相關文章
相關標籤/搜索