统一数据返回

统一数据返回

  • 统一数据返回
  • 创建一个类
  • 重写父类方法
  • supports
  • beforeBodyWrite
    • 特殊情况
  • @ControllerAdvice

统一数据返回

统一数据返回_第1张图片

创建一个类

想要实现数据的统一返回功能,我们首先得创建出一个类,并让它继承自ResponseBodyAdvice这个父类
在这里插入图片描述

重写父类方法

创建完成之后,我们需要对父类的方法进行重写,这里包含两个方法:
在这里插入图片描述
在这里插入图片描述

supports

第一个方法:supports,这个方法的返回值是用来判断是否要执行beforeBodyWrite,也就是第二个方法,ture是执行,false则是不执行,通过这个方法可以选择哪些类或方法的response要处理,哪些不予处理

//获取执行的类
Class<?> declaringClass = returnType.getMethod().getDeclaringClass();
//获取执行的方法
Method method = returnType.getMethod();

beforeBodyWrite

对response方法进行具体操作处理,参数中的body就是被执行的方法的返回值,我们可以对其进行相应的处理,来达到统一数据的效果

特殊情况

当body为字符串时,我们不能直接返回该字符串.因为这样会导致程序出现异常,因此我们需要将数据进行相应的转换,这里我用到的方法是在类里面new一个或者是将ObjectMapper给注入进来,然后使用objectMapper.writeValueAsString(body);来将数据进行转换.

@ControllerAdvice

想要统一数据返回的这个类成功生效,我们还需要在类上面添加一个
@ControllerAdvice这个注解


到这里我的分享就结束啦,感谢大家的支持

你可能感兴趣的:(java,spring)