Spring Boot接口统一返回格式 Result对象

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(974)   2023-03-28 11:29:14
为了方便管理,项目中使用统一风格的返回格式
 
$title(Result.java)

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.UUID;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.leftso.system.Log;


/**
 * 
 * <pre>
 * [Summary]
 * 通用json数据接口返回口径
 * [Detail]
 * TODO
 * [Author]
 * XQLEE
 * [Version]
 * v1.0
 * 2017年3月27日下午6:32:12
 * </pre>
 */
public final class Result<T> implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private Result() {
	}

	private Result(Status status, T data, String message) {
		this.id = UUID.randomUUID().toString().replaceAll("-", "");
		this.status = status;
		this.data = data;
		this.message = message;
	}

	public static <T>Result<T> success(T data) {
		return new Result(Status.Success, data, "");
	}

	public static <T>Result<T> fail(String message) {
		return new Result(Status.Fail, "", message);
	}

	public static <T>Result<T> unLogin() {
		return new Result(Status.unLogin, "", "用户未登录");
	}
	
	private String id;
	/** 数据内容 **/
	private T data;
	/** 调用接口状态 **/
	private Status status;
	/** 消息,如错误消息 ***/
	private String message;
	/** 接口调用花费时间(单位:秒) **/
	private BigDecimal cost;
	/*** 接口响应时间 ***/
	private String time;

	/**
	 * @return the id
	 */
	public String getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(String id) {
		this.id = id;
	}

	public static long getSerialVersionUID() {
		return serialVersionUID;
	}

	public T getData() {
		return data;
	}

	public void setData(T data) {
		this.data = data;
	}

	/**
	 * @return the status
	 */
	public Status getStatus() {
		return status;
	}

	/**
	 * @param status
	 *            the status to set
	 */
	public void setStatus(Status status) {
		this.status = status;
	}

	/**
	 * @return the message
	 */
	public String getMessage() {
		return message;
	}

	/**
	 * @param message
	 *            the message to set
	 */
	public void setMessage(String message) {
		this.message = message;
	}

	/**
	 * @return the cost
	 */
	public BigDecimal getCost() {
		return cost;
	}

	/**
	 * @param cost
	 *            the cost to set
	 */
	public void setCost(BigDecimal cost) {
		this.cost = cost;
	}

	/**
	 * @return the time
	 */
	public String getTime() {
		return time;
	}

	/**
	 * @param time
	 *            the time to set
	 */
	public void setTime(String time) {
		this.time = time;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		try {
			return JSON.toJSONString(this);
		} catch (Exception e) {
			Log.error(e.getMessage(), e, this.getClass());
			return JSON.toJSONString(Result.fail("数据处理异常"));
		}
	}

	enum Status {
		Success, Fail,unLogin
	}
}
地址:https://www.leftso.com/article/642.html

相关阅读

为了方便管理,项目中使用统一风格的返回格式$title(Result.java) import java.io.Serializable; import java.math.BigDecima...
           Spring boot/mvc项目中通过@RestControllerAdvice或者@ControllerAdvice配合@ExceptionHandler实现全局异常统一处理
简介Spring Cloud Gateway中的全局异常处理不能直接用@ControllerAdvice来处理,通过跟踪异常信息的抛出,找到对应的源码,自定义一些处理逻辑来符合业务的需求
Spring Boot 入门 AOP 日志处理,这里主要讲解spring boot 中采用AOP方式进行日志的统一处理。spring 框架的处理也是一样。综合来讲,本文主要讲解了spring b...
       ​Spring Boot       这里主要对Spring Boot 项目和Spring MVC 相关项目中,日期参数的使用以及Ajax请求日期数据返回格式的处理
spring boot mybatis 整合使用讲解介绍,spring boot与mybaties的使用讲解介绍。spring boot mybatis xml mapper方式的入门和通过一个...
spring boot框架整合mybaties数据库暂时选用MySQL
Spring Boot validation整合hibernate validator实现数据验证,Spring Boot validation使用说明,Spring Boot validat...
SpringBoot使用@ResponseBody返回图片的实现以前使用HttpServletResponse可以通过输出流的方式来向前台输出图片
一、spring boot shiro 无状态token认证项目结构图​二、无状态spring boot shiro相关配置2.1shiro redis 缓存配置首先是实现shiro的cache...