SpringBoot整合Mybatis實現簡單的CRUD(2)
思考
看了上面一步步的講解。你應該明白了,其實和SSM階段的CRUD基本相同,這裡我就不再舉例其他方法。
下面我們講解一下不同的地方:
實現頁面跳轉
因為Thymeleaf指定的目錄src/main/resources/templates/
是受保護的目錄,其下的資源不能直接通過瀏覽器訪問,可以使用Controller對映的方式訪問,怎麼對映呢?
1.在application.yml中新增配置
指定Thymeleaf模板引擎掃描resources
下的templates
資料夾中已.html
結尾的檔案。這樣就實現了MVC中關於檢視解析器的配置:
是不是感覺方便很多呢?但這裡需要注意的是:classpath:
後的目錄地址一定要先加/
,比如目前的classpath:/templates/
。
2.在Controller新增對映方法
這樣,訪問localhost:8080/index
將直接跳轉到resources/templates/home/index.html
頁面。
實現分頁查詢
首先我們需要在application.yml中配置pageHelper外掛
我這裡使用了Mybatis的PageHelper分頁外掛,前端使用了ElementUI自帶的分頁外掛
核心配置:
UserServiceImp.java
實現檔案上傳
這裡涉及的無非就是SpringMVC的檔案上傳
因為本專案中前端使用了ElementUI+Vue.JS技術
除了程式碼的編寫,這裡還要在application.yml中進行配置:
這就相當於SpringMVC的XML配置:
使用Spring AOP切面程式設計實現簡單的登入攔截器
本專案,我們先不整合Shiro和Spring Security這些安全框架,使用Spring AOP切面程式設計思想實現簡單的登入攔截:
解釋
關於Spring AOP的切面程式設計請自行百度
-
一定要熟悉AspectJ的切點表示式,在這裡:
..*
-
如果進行了登入攔截,即在session中沒有獲取到使用者的登入資訊,我們可能需要手動轉發到
login
頁面,這裡訪問的是login
對映。 -
基於2,一定要指定Object返回值,若AOP攔截的Controller return了一個檢視地址,那麼本來Controller應該跳轉到這個檢視地址的,但是被AOP攔截了,那麼原來Controller仍會執行return,但是檢視地址卻找不到404了。
- 切記一定要呼叫proceed()方法,proceed():執行被通知的方法,如不呼叫將會阻止被通知的方法的呼叫,也就導致Controller中的return會404。