spring boot自定义封装返回code

在项目中, 我们一般会自定义code和消息去返回给前端,那么在sping boot 中如何封装那?
jar包:

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.1.13</version>
        </dependency>

封装的工具类:

package com.qianhe.utlis.response;

import cn.hutool.json.JSONUtil;

import java.io.Serializable;


public class RetInfo<T> implements Serializable{
    private static final long serialVersionUID = 3727716032001744456L;

    public Integer code;
    public String msg;
    public T data;

    public RetInfo() {
    }

    public RetInfo(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public RetInfo(Integer code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    //通用成功
    public static RetInfo success() {
        return new RetInfo(200, "成功");
    }

    public static RetInfo success(Object data) {
        return new RetInfo(200, "成功", data);
    }

    public static RetInfo success(String msg, Object data) {
        return new RetInfo(200, msg, data);
    }

    //通用失败
    public static RetInfo fail() {
        return new RetInfo(500, "执行失败");
    }

    public static RetInfo fail(Object data) {
        return new RetInfo(500, "失败", data);
    }

    public static RetInfo fail(String msg, Object data) {
        return new RetInfo(500, msg, data);
    }

    // 权限问题
    public static RetInfo jurisdiction(String msg, Object data) {
        return new RetInfo(403, msg, data);
    }

    //通用token失效
    public static RetInfo isFailure() {
        return new RetInfo(1001, "会话超时,请重新登录");
    }

    @Override
    public String toString() {
        return JSONUtil.toJsonStr(this);
    }

}

在coll层的使用:

    @GetMapping("/new/res")
    @ResponseBody
    public RetInfo userNewInfo(PageRequest pageQuery){
        Object userBeanList = userServer.findPage(pageQuery);

        Map<String,Object> hashMap = new HashMap<>();
        hashMap.put("result", userBeanList);
        hashMap.put("测试", "hahaha");

        return RetInfo.success(hashMap);
    }

用posman测试:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,可以使用spring-boot-starter-amqp库来轻松地集成RabbitMQ,并且封装了多种模式的实现方式。 1. 简单模式(Simplest Model): ```java @Autowired private RabbitTemplate rabbitTemplate; public void sendSimpleMessage(String message) { rabbitTemplate.convertAndSend("simple-queue", message); } @RabbitListener(queues = "simple-queue") public void receiveSimpleMessage(String message) { System.out.println("Received message: " + message); } ``` 2. 工作队列模式(Work queues Model): ```java @Autowired private RabbitTemplate rabbitTemplate; public void sendWorkMessage(String message) { rabbitTemplate.convertAndSend("work-queue", message); } @RabbitListener(queues = "work-queue") public void receiveWorkMessage(String message) throws InterruptedException { System.out.println("Received message: " + message); Thread.sleep(1000); // 模拟消费者耗时操作 } ``` 3. 发布/订阅模式(Publish/Subscribe Model): ```java @Autowired private RabbitTemplate rabbitTemplate; public void sendPublishMessage(String message) { rabbitTemplate.convertAndSend("fanout-exchange", "", message); } @RabbitListener(queues = "fanout-queue-1") public void receivePublishMessage1(String message) { System.out.println("Received message from queue 1: " + message); } @RabbitListener(queues = "fanout-queue-2") public void receivePublishMessage2(String message) { System.out.println("Received message from queue 2: " + message); } ``` 4. 路由模式(Routing Model): ```java @Autowired private RabbitTemplate rabbitTemplate; public void sendRoutingMessage(String message, String routingKey) { rabbitTemplate.convertAndSend("direct-exchange", routingKey, message); } @RabbitListener(queues = "direct-queue-1") public void receiveRoutingMessage1(String message) { System.out.println("Received message from queue 1: " + message); } @RabbitListener(queues = "direct-queue-2") public void receiveRoutingMessage2(String message) { System.out.println("Received message from queue 2: " + message); } ``` 5. 主题模式(Topic Model): ```java @Autowired private RabbitTemplate rabbitTemplate; public void sendTopicMessage(String message, String routingKey) { rabbitTemplate.convertAndSend("topic-exchange", routingKey, message); } @RabbitListener(queues = "topic-queue-1") public void receiveTopicMessage1(String message) { System.out.println("Received message from queue 1: " + message); } @RabbitListener(queues = "topic-queue-2") public void receiveTopicMessage2(String message) { System.out.println("Received message from queue 2: " + message); } ``` 6. 随机模式(Headers Model): ```java @Autowired private RabbitTemplate rabbitTemplate; public void sendHeadersMessage(String message, Map<String, Object> headers) { MessageProperties messageProperties = new MessageProperties(); messageProperties.getHeaders().putAll(headers); Message messageObj = MessageBuilder.withBody(message.getBytes()) .andProperties(messageProperties) .build(); rabbitTemplate.send("headers-exchange", "", messageObj); } @RabbitListener(queues = "headers-queue-1") public void receiveHeadersMessage1(String message) { System.out.println("Received message from queue 1: " + message); } @RabbitListener(queues = "headers-queue-2") public void receiveHeadersMessage2(String message) { System.out.println("Received message from queue 2: " + message); } ``` 以上是Spring Boot封装RabbitMQ的6种模式的简单示例。实际使用时,可能需要更加复杂的逻辑,例如消息确认、消息重试、死信队列等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值