首页 > 其他分享 >统一controller返回对象

统一controller返回对象

时间:2024-04-12 14:44:05浏览次数:25  
标签:返回 body http 对象 springframework controller import org

统一controller返回对象

package com.xxx.jscaffold.handler;


import com.xxx.jscaffold.api.dto.common.Result;
import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;

@RestControllerAdvice(basePackages = "com.xxx.jscaffold.controller")
public class ResponseAdvice implements ResponseBodyAdvice<Object> {
    @Override
    public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
        // 如果不需要进行封装的,可以添加一些校验手段,比如添加标记排除的注解
        return true;
    }

    @Override
    public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
                                  Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request,
                                  ServerHttpResponse response) {
        // 提供一定的灵活度,如果body已经被包装了,就不进行包装
        if (body instanceof Result) {
            return body;
        }
        return Result.success(body);
    }
}

这样不管controller返回什么对象,都会被封装到Result对象里

标签:返回,body,http,对象,springframework,controller,import,org
From: https://www.cnblogs.com/PythonOrg/p/18131185

相关文章

  • python基础-函数(函数参数、返回值、执行、传参、作用域、函数名)
    前言!!!注意:本系列所写的文章全部是学习笔记,来自于观看视频的笔记记录,防止丢失。观看的视频笔记来自于:哔哩哔哩武沛齐老师的视频:2022Python的web开发(完整版)入门全套教程,零基础入门到项目实战1.初识函数函数就是一大堆代码的集合,这一堆的代码再起个名字。#定义函数def函数名......
  • Java中Array.sort()的几种用法简明教程 (需要初始化要排序的对象)对 一个数组的所有元素
    Java中Array.sort()的几种用法简明教程(需要初始化要排序的对象)对一个数组的所有元素进行排序,并且是按从小到大的顺序Java中Array.sort()的几种用法简明教程(需要初始化要排序的对象)======================================================1、Arrays.sort(int[]a)......
  • java面向对象有哪些特征
    Java面向对象编程(OOP)的核心特征通常包括封装性、继承性、多态性和抽象性。具体如下:封装性:封装是指将对象的属性(数据)和行为(方法)绑定在一起,并对对象的实现细节进行隐藏,只暴露出必要的接口给外部使用。这样做的目的是为了保护对象的内部状态,防止外部随意访问和修改。继承性:继承允......
  • lightdb 支持从父查询中返回子查询表中的 rowid
    背景在如下的sql中,selectrowidfrom(select1fromt);lightdb24.1以前会直接报错,说找不到rowid列。为了兼容Oracle,在24.1中,我们选择将告知子查询除了返回子查询应有的列之外,还需返回rowid列。样例以下样例sql说明了lightdb24.1中支持的rowid的功能:-......
  • 2-64. 使用 Unity 最新 ObjectPool API 制作对象池
    创建PoolManager修改EventHandler修改CropDetails修改Crop修改PoolManager修改CropDataList_SO修改PoolManager作业做好Tree02项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240411_1542......
  • 子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作
    行重复   删除掉一行即可deletefromrolewhereid=9goSETIDENTITY_INSERT[dbo].[role]ONGOINSERTINTO[dbo].[role]([id],[description],[role_key],[role_value])VALUES(N'9',N'这是超级管理员',N'ROLE_ADMIN',N'超级管理员')......
  • 三分钟带你“手撕”Java中的类与对象
    目录1.面向对象的初步认识1.1.什么是面向对象?2.什么是类?2.1.认识类2.2.类的定义格式3.类的实例化出对象3.1.什么是实例化,什么是对象?3.2.怎么实例化一个对象?4.总结1.面向对象的初步认识1.1.什么是面向对象?Java是一门面向对象的编程,那什么是面向对象呢?比如:你......
  • 面相对象(三):模拟链表
    面向对象的基本原理是对对象建模,让抽象的逻辑封装成具象的行为,更方便人们理解和使用。在前面的文章中我写了关于继承的一些理解,一般来说这里应该讨论与继承同为面向对象三个主要特征的多态与封装了。但是我想多态与封装是一种伴随着类的定义自然而然形成的现象,只有先接触了一定数......
  • ASP.NET--Request(请求)对象概述
    概述:Request对象用于检索从浏览器向服务器发送的请求中的信息。它提供对当前页请求的访问,包括标题、Cookie、客户端证书,查询字符串等,与HTTP协议的请求信息相对应。同样,假如将用户请求服务器的过程比喻成客户到柜台买商品的过程,那么客户向享受原描述要购买商品(如颜色,大小,功能......
  • 2024-04-11 记录日常业务之遍历对象并删除不符合条件的属性
    为什么要记录,因为很少遇到这种奇葩的需求,后端要我不要返回对象中所有值为-1的字段,我就纳了闷了,你就不能自己处理吗??好了,不吐槽了,主要是较少去处理遍历对象的操作(历来都是遍历数组),所以在这里做个记录:letparams={ a:10, b:6, c:-1, d:11, e:19, f:-1,......