? ? ? ? 有時候你看別人代碼,controller層里代碼好簡單,卻把想要的功能實現(xiàn)了,也沒看到調了什么方法啊。其實人家只是用了另一種優(yōu)雅的方法來封裝了接口而已?,F(xiàn)在我也來玩一玩,一起探討一下樂趣。哈哈哈哈。這個方法就是封裝一個注解。。
? ? ? ? 封裝一個注解用來重寫controller的返回體的,@Target主要是設置該注解用于方法和類的,@Retention注解是用于標明運行中,@Documented是標明該注解在系統(tǒng)啟動時加載的。

注解類

攔截類
? ? ? ? 實現(xiàn)HandlerInterceptor接口,為了通過反射攔截request請求的方法是否有用了上面封裝的注解@ResponseResult,如果有該注解就打上標志。

返回實體重寫
????????實現(xiàn)ResponseBodyAdvice接口,重寫support方法根據標志返回對應的調用狀態(tài),然后重寫beforeBodyWrite方法,根據body的類型不同返回不同格式的封裝。
????????寫好封裝后,可以在controller層類名或者方法名上用@ResponseResult。

控制層調用