日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot教程(11) – 理解注解@ControllerAdvice

發布時間:2023/11/30 javascript 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot教程(11) – 理解注解@ControllerAdvice 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前,我們介紹過@ModelAttribute和@ExceptionHandler,前者可以往請求的Model里加數據,后者可以接受請求處理方法拋出的異常。但是他們放在控制器(Controller)里的時候,作用范圍是有限的,只管當前控制器里的方法。如果你有幾百個控制器,在每個控制器里都加上類似的代碼,不免有點冗余和費勁兒。Spring框架提供了@ControllerAdvice注解,幫助你將其應用到所有的控制器上。

Controller Advice字面上意思是“控制器通知”,Advice除了“勸告”、“意見”之外,還有“通知”的意思。你可以將@ModelAttribute和@ExceptionHandler標記的方法提取出來,放到一個類里,并將加上@ControllerAdvice,這樣,所有的控制器都可以用了:

因為@ControllerAdvice被元注解@Component標記,所以它也是可以被組件掃描掃到并放入Spring容器的。

如果你只想對一部分控制器添加通知,比如某個包下的控制器,可以這樣寫:

如果你不想把包名寫死,不如把包里的某個類傳進去,這樣包名重構了也不怕:

如果你只想對某幾個控制器添加通知,可以這樣寫:

挺簡單的是不是?

通知里的@ModelAttribute方法會先于控制器里執行。通知里的@ExceptionHandler方法優先級會低于控制器里的。仔細想想就能明白,局部的要優先于全局的。

控制器通知還有一個兄弟,@RestControllerAdvice,如果用了它,錯誤處理方法的返回值不會表示用的哪個視圖,而是會作為HTTP body處理,即相當于錯誤處理方法加了@ResponseBody注解。

原文鏈接:fookwood.com/spring-boot…


轉載于:https://juejin.im/post/5d2076085188250fcf17bf6d

總結

以上是生活随笔為你收集整理的Spring Boot教程(11) – 理解注解@ControllerAdvice的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。