统一响应类和枚举类

1.加入lombok依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

IDEA装上lombok插件


2.在utils包下创建响应状态码接口类ResultCode

public interface ResultCode {

    //设置成功状态码
    public static Integer SUCCESS = 20000;

    //设置失败状态码
    public static Integer ERROR = 20001;
}

3.在utils包下创建响应类R

import lombok.Data;
import java.util.HashMap;
import java.util.Map;

@Data
public class R {
    //是否成功
    private Boolean success;
    //返回状态码
    private Integer code;
    //返回消息
    private String message;
    //返回数据
    private Map<String, Object> data = new HashMap<String, Object>();

    private R(){}

    //返回成功消息对象R,数据为空,可链式调用设置数据
    public static R ok(){
        R r = new R();
        r.setSuccess(true);
        r.setCode(ResultCode.SUCCESS);
        r.setMessage("成功");
        return r;
    }

    //返回失败消息,数据为空,可链式调用设置数据
    public static R error(){
        R r = new R();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return r;
    }

    //重新设置返回结果R的message属性
    public R message(String message){
        this.setMessage(message);
        return this;
    }

    //重新设置返回结果R的code属性
    public R code(Integer code){
        this.setCode(code);
        return this;
    }

    //设置返回结果R的data数据,以键值对的形式传参设置
    public R data(String key, Object value){
        this.data.put(key, value);
        return this;
    }

    //设置返回结果R的data数据,Map对象形式传输设置
    public R data(Map<String, Object> map){
        //lombok自动生成的setData方法进行设置
        this.setData(map);
        return this;
    }
}

4.修改IndexController控制器方法的响应结果,返回R

import com.zeromemos.utils.R;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class IndexController {

    @RequestMapping({"/","/index"})
    public R index(){
        return R.ok();
    }
}

5.启动访问http://localhost:8001/测试