作者簡介:大家好,我是未央;
博客首頁:未央.303
系列專欄:JavaEE進(jìn)階
每日一句:人的一生,可以有所作為的時機(jī)只有一次,那就是現(xiàn)在!??!
文章目錄
前言
一、統(tǒng)一用戶的登錄
1.1 Spring AOP 實現(xiàn)用戶統(tǒng)一登錄驗證
1.2Spring攔截器實現(xiàn)統(tǒng)一用戶的登錄驗證
1.3 實例演示(通過url訪問controller層的方法)
二、統(tǒng)一異常處理
三、統(tǒng)一數(shù)據(jù)格式返回
3.1 統(tǒng)一數(shù)據(jù)返回格式的優(yōu)點
3.2 統(tǒng)一數(shù)據(jù)返回格式的實現(xiàn)
四、總結(jié)
總結(jié)
前言
一、統(tǒng)一用戶的登錄
在學(xué)習(xí)Spring AOP之前,用戶登錄權(quán)限的驗證是由每個方法中自己驗證。
1.1 Spring AOP 實現(xiàn)用戶統(tǒng)一登錄驗證
而學(xué)習(xí)了Spring AOP之后,可以通過Spring AOP的前置通知或環(huán)繞通知來實現(xiàn),具體實現(xiàn)代碼如下:
但如果在以上Spring AOP的切面中實現(xiàn)用戶權(quán)限效驗的功能,有以下兩個問題:?
- 1.沒辦法獲取到HttpSession對象。
- 2.我們要對一部分方法進(jìn)行攔截,而另一部分方法不攔截,如注冊方法和登錄方法是不攔截的,這樣的話排除方法的規(guī)則很難定義,甚至沒辦法定義。
要解決上述問題,就需要使用下邊的Spring攔截器:
對于以上問題Spring中提供了具體的實現(xiàn)攔截器:HandlerInterceptor,攔截器的實現(xiàn)分為以下兩個步驟:
1、創(chuàng)建自定義攔截器,實現(xiàn) HandlerInterceptor 接口的perHandle(執(zhí)行具體方法之前的預(yù)處理)方法。
2、將自定義攔截器加入 WebMvcConfiger的 addInterceptors方法中。
1.2Spring攔截器實現(xiàn)統(tǒng)一用戶的登錄驗證
1、自定義攔截器,實現(xiàn)HandlerInterceptor,重新preHandle(返回boolean方法)
2、配置攔截規(guī)則?
1.3 實例演示(通過url訪問controller層的方法)
二、統(tǒng)一異常處理
為什么要對異常進(jìn)行統(tǒng)一處理呢?
?上面我們的controller層的代碼明顯是有問題的,我們用瀏覽器訪問一下該方法:
?可以看到,我們什么都沒有返回給前端——》這個時候前端同學(xué)完全都不知道發(fā)生什么?
所有我們有必要對異常進(jìn)行統(tǒng)一處理,以便不管怎樣都有返回值。
???我們的異常攔截是針對整個項目來進(jìn)行異常攔截的,不用具體配置哪些類需要異常攔截?
三、統(tǒng)一數(shù)據(jù)格式返回
3.1 統(tǒng)一數(shù)據(jù)返回格式的優(yōu)點
- 方便前端程序員更好的接受和解析后端數(shù)據(jù)接口返回的數(shù)據(jù)。
- 降低前端程序員和后端程序員的溝通成本,按照某個格式實現(xiàn)就可以了,因為所有接口都是這樣返回的。
- 有利于項目統(tǒng)一數(shù)據(jù)的維護(hù)和修改。
- 有利于后端技術(shù)部門的統(tǒng)一規(guī)范的標(biāo)準(zhǔn)制定,不會出現(xiàn)稀奇古怪的返回內(nèi)容。
3.2 統(tǒng)一數(shù)據(jù)返回格式的實現(xiàn)
統(tǒng)一的數(shù)據(jù)返回格式可以使用@ControllerAdvice+ResponseBodyAdvice的方式實現(xiàn),具體實現(xiàn)代碼如下:
文章來源:http://www.zghlxwxcb.cn/news/detail-465827.html
四、總結(jié)
- 統(tǒng)一用戶登錄權(quán)限的效驗使用WebMvcConfigurer+HandlerInterceptor來實現(xiàn)
- 統(tǒng)一異常處理使用@ControllerAdvice+@ExceptionHandler來實現(xiàn)
- 統(tǒng)一返回值處理使用@ControllerAdvice+ResponseBodyAdvice來處理
總結(jié)
文章來源地址http://www.zghlxwxcb.cn/news/detail-465827.html
到了這里,關(guān)于【JavaEE進(jìn)階】——第八節(jié).SpringBoot統(tǒng)一功能處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!