Spring 中的常用定式
统一异常处理
对于 Restful API 来说,就是通过 RestCongtrollerAdvisor 注解实现。
对于 Spring MVC 来说,通过继承 ErrorController 实现 handleError()来实现统一 excepiton 处理。
就 Rest API 应用来说,一般把响应统一封装,常见的是封装成 BaseResponse of T。这种范型方式的使用对于 Feign 这种方式的 API 来说存在问题。
因为 Feign 是通过使用动态代理来执行请求 HTTP 服务、转换响应到对象的。而范型在运行时类型信息被擦除,所以 BaseResponse
对于 BaseResponse,基本就是封装三个元素:resultCode、message、data、(exception)。对于 resultCode 可以结合 javax.servlet.http.HttpServletResponse 中定义的状态码来定义。
参数校验
Feign 强类型客户端
使用 Feign 基本就是两个步骤:
1)在启动类标注 @EnableFeignClient
2)在客户端类标注 @FeignClient(SERVICE_NAME) 并在方法名上标注@RequestMapping。
Feign 的实现就是通过使用动态代理来执行请求 HTTP 服务、转换响应到对象。也算是强类型的一种客户端。