2024 java使用Graceful Response,告别自己去封装响应,可以接收数据异常,快看我这一篇,足够你用!

参考官网手册地址:快速入门 | Docs

一、导入依赖(根据springboot查看对应依赖版本)

复制代码
 <!--    Graceful    -->
        <dependency>
            <groupId>com.feiniaojin</groupId>
            <artifactId>graceful-response</artifactId>
            <version>3.5.2-boot2</version>
        </dependency>

二、配置文件

复制代码
#graceful
graceful-response.response-class-full-name
# Response风格,不配置默认为0
graceful-response.response-style=1
# 自定义的成功提示,默认为ok
graceful-response.default-success-msg=success
# 自定义的成功响应码,不配置则为0
graceful-response.default-success-code=200
# 自定义的失败提示,默认为error
graceful-response.default-error-msg=error
# 自定义的失败响应码,默认为1
graceful-response.default-error-code=204
# 设置是否将原生异常错误信息detailMessage字段填充到Response的msg中
# 默认为false,即不打开
graceful-response.origin-exception-using-detail-message=true
# 是否打印异常日志,默认为false
print-exception-in-global-advice: false

1.特别注意 ,两种响应风格

响应风格0

复制代码
{
    "status": {
        "code": "200",
        "msg": "success"
    },
    "payload": {
       //返回的数据
    }
}

响应风格1(个人常用)

复制代码
{
    "code": "200",
    "msg": "success",
    "data": {
       //返回的数据
    }
}

两种都不是,请看官网手册,自定义就好

自定义Response格式 | Docs

2.还有关于异常的,请参考官网手册,则需选择

自定义异常和错误码 | Docs

三、启动类添加注解

复制代码
@EnableGracefulResponse

四、直接使用

复制代码
1.controller层
   @Autowired
    private 自己的Service 自己的Service;
  /**
     * 根据主键获取详细信息
     *
     * @param id 主键
     * @return 信息详情
     */
    @GetMapping("/getInfo/{id}")
    public 自己的实体类 getInfo(@PathVariable Integer id) {
        return 自己的Service.getInfo(id);
    }



2.service层
    /**
     * 根据主键获取详细信息
     *
     * @param id 主键
     * @return 信息详情
     */
   自己的实体类 getInfo(Integer id);



3.serviceImpl层
 /**
     * 根据主键获取详细信息
     *
     * @param id 主键
     * @return 信息详情
     */
  @Override
    public 自己的实体类 getInfo(Integer id) {
       //根据id获取实体类的逻辑
        自己的实体类 res=....
        return res;
    }

五、运行效果

相关推荐
SL_staff29 分钟前
私有化低代码:面向强监管行业的可控数字化实践
java·低代码
三翼鸟数字化技术团队1 小时前
高性能存储引擎RocksDB:原理与Java生态实践
java
SL_staff1 小时前
JVS-APS有限产能建模的七个刚性支点:面向产线真实约束的技术实现解析
java·开源·全栈
特立独行的猫A1 小时前
少 3 个环节、少 1 次 ABI、少 3500 行代码:cj-tauri 与 Ionic/Capacitor 的鸿蒙桥接机制对比
java·后端·python
学长毕设2 小时前
基于SpringBoot的高校后勤报修管理系统-附源码
java·spring boot·后端
特立独行的猫A2 小时前
cj-tauri vs Rust/Tauri 同款播放器实测:编译 21 秒 vs 11 分钟,磁盘 12 MB vs 1.2 GB
java·后端·python
杨凯凡2 小时前
Spring AI RAG 实战:向量检索、租户过滤、引用溯源与防幻觉边界
java·人工智能·spring
小科先生3 小时前
Java springboot调用数据库的基本流程
java·数据库·spring boot
秋饼4 小时前
GPT-Live 全双工语音 API Java 服务端落地实战:事件协议、会话恢复与生产踩坑
java·ai·技术分享·后端开发
SL_staff4 小时前
为什么企业级自动化不能只靠AI编排?——逻辑引擎在确定性业务场景中的不可替代性
java·开源·产品