payload-spring-boot-starter
一個(gè) SpringBoot 統(tǒng)一響應(yīng)體/異常處理組件
信息
基于 spring-boot-starter-web:2.6.3 構(gòu)建
by:林同學(xué)(765371578@qq.com)
Getting Started
引入依賴:
<dependency>
<groupId>com.github.LinYuanBaoBao</groupId>
<artifactId>payload-spring-boot-starter</artifactId>
<version>1.1.0-RELEASE</version>
</dependency>
Controller 上使用 @Payload 注解,自動(dòng)對(duì)返回的對(duì)象進(jìn)行包裝:
@Payload
@RequestMapping("/users")
@RestController
public class MyController {
@GetMapping("/{id}")
public User get(@PathVariable Integer id) {
return user;
}
}
響應(yīng)結(jié)果如下:
{
"code": 200,
"data": {
"k1": "v1",
"k2": "v2"
},
"success": true,
"timestamp": 1623055152059
}
業(yè)務(wù)異常
開啟業(yè)務(wù)異常處理:
spring:
mvc:
payload:
biz-error-enabled: true
拋出業(yè)務(wù)異常 BizException:
throw new BizException("業(yè)務(wù)異常",9999);
此時(shí) http-status 狀態(tài)碼為 400,響應(yīng)結(jié)果如下:
{
"success": false,
"message": "業(yè)務(wù)異常",
"code": 9999,
"timestamp": 1623055152059
}
或者,你也可以繼承 GlobalExceptionHandler 類自定義異常處理邏輯