SpringBoot项目通用返回类(result风格开发,完善前后端分离开发)

SpringBoot项目通用返回类

在日常的项目当中,尤其在前后端分离项目当中一般会有固定的返回类,便于前后端的交互。

  1. 先构建一个格式确定下来的Result类。
package com.ss.jwt.R;

import lombok.Data;

import java.io.Serializable;


/**
 * @version V1.0
 * @Package com.ss.jwt.R
 * @author: Liu
 * @Date: 10:21
 */
@Data
public class R<T> {
/*返回体*/
private  Integer code;
private String msg;
private T data;


}
  1. 构建常用枚举类,内容根据项目或者公司需求可以自定义。
package com.ss.jwt.R;

import lombok.Data;

/**
 * @version V1.0
 * @Package com.ss.jwt.R
 * @author: Liu
 * @Date: 10:36
 */
//枚举类
public enum Renum {
    //这里是可以自己定义的,方便与前端交互即可
    UNKNOWN_ERROR(-1,"未知错误"),
    SUCCESS(10000,"成功"),
    USER_NOT_EXIST(1,"用户不存在"),
    USER_IS_EXISTS(2,"用户已存在"),
    DATA_IS_NULL(3,"数据为空"),
    ;
    private Integer code;
    private String msg;

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

    public Integer getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}

`
3. 工具类,用来写返回信息

package com.ss.jwt.utils;

import com.ss.jwt.R.R;
import com.ss.jwt.R.Renum;
import com.sun.org.apache.bcel.internal.generic.NEW;
/**
 * @version V1.0
 * @Package com.ss.jwt.utils
 * @author: Liu
 * @Date: 10:39
 */
public class RUtils {
    /*成功,且返回体有数据*/
    public static R success(Object object) {
        R r = new R();
        r.setCode(Renum.SUCCESS.getCode());
        r.setMsg(Renum.SUCCESS.getMsg());
        r.setData(object);
        return r;
    }
    //成功,但返回体没数据
    public static  R success(){
        return success(null);
    }
    //失败返回信息
    public static R Err(Integer code,String msg){
        R r = new R();
        r.setCode(code);
        r.setMsg(msg);
        return r;
    }
}
  1. controller层测试
 /*测试返回体*/
    @GetMapping("/test")
        @ResponseBody
    public R test(){
        String str="相信未来";
        return RUtils.success(str);
    }
  1. 测试结果
    在这里插入图片描述
  2. 项目实际测试
    这里是简单的单表查询业务,成功则返回工具类成功信息以及返回的参数。失败则返回失败信息。
 /*模拟需要登录后的业务2*/
    @GetMapping("/api/findById")
    public R findById(){
        Student student = studentService.findById();
        if(student!=null){
            return RUtils.success(student);

        }else {
            return RUtils.Err(Renum.UNKNOWN_ERROR.getCode(),Renum.UNKNOWN_ERROR.getMsg());
        }

    }
  1. 测试结果
    成功时:
    在这里插入图片描述
    失败时: 在这里插入图片描述
    各有不同,仅供参考。
  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Spring Boot项目中实现前后端分离,可以通过以下步骤来实现: 1. 配置前端资源:将前端代码(如HTML、CSS、JavaScript等)放置在项目的静态资源目录下(默认为`src/main/resources/static`),或者使用前端框架(如Vue.js、React等)来构建前端应用。 2. 配置后端接口:在后端项目中,使用Spring Boot提供的`@RestController`注解来定义RESTful接口,通过`@RequestMapping`注解来映射URL路径和请求方法。在接口方法中,可以调用业务逻辑处理数据,并返回JSON格式的数据给前端。 3. 跨域配置:由于前后端分离项目中,前端和后端可能运行在不同的域名或端口上,因此需要进行跨域配置。可以通过在后端项目中添加`@CrossOrigin`注解来实现跨域访问。 4. 数据交互:前端通过Ajax或Fetch等方式向后端发送请求,后端接收请求并处理数据,然后将处理结果返回给前端。 5. 前后端联调:在开发过程中,前后端需要进行联调,确保接口的正确性和数据的准确性。可以使用Postman等工具来模拟发送请求,或者使用前端开发工具(如Vue Devtools)来调试前端代码。 总结起来,前后端分离Spring Boot项目需要配置前端资源、定义后端接口、进行跨域配置,并通过Ajax或Fetch等方式进行数据交互。这样可以实现前后端的解耦,提高开发效率和项目的可维护性。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Spring Boot实战系列《二》:白话理解前后端分离](https://blog.csdn.net/ITBigGod/article/details/84026690)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [前后端分离项目-Springboot后端框架搭建,SSM】](https://blog.csdn.net/qq_22841387/article/details/128294183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NotFoundObject.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值