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

编程教程 > Java > Spring (2022) 2024-11-26 14:39:04
为了方便管理,项目中使用统一风格的返回格式
 
$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.xqlee.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
	}
}

评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
为了方便管理,项目中使用统一风格的返回格式$title(Result.java) import java.io.Serializable; import java.math.BigDecima...
       ​Spring Boot       这里主要对Spring Boot 项目和Spring MVC 相关项目中,日期参数的使用以及Ajax请求日期数据返回格式的处理
Spring Boot 入门 AOP 日志处理,这里主要讲解spring boot 中采用AOP方式进行日志的统一处理。spring 框架的处理也是一样。综合来讲,本文主要讲解了spring b...
SpringBoot使用@ResponseBody返回图片的实现以前使用HttpServletResponse可以通过输出流的方式来向前台输出图片
前言spring boot 项目常用的几个类设计,方便快速搭建项目错误处理模块。代码片段 错误枚举定义@Getterpublic enum ErrorCodeE
spring boot mybatis 整合使用讲解介绍,spring boot与MyBatis的使用讲解介绍。spring boot mybatis xml mapper方式的入门和通过一个简...
引言    通过之前spring boot mybatis 整合的讲解: spring boot mybaties整合  (spring boot mybaties 整合 基于Java注解方式写...
Spring Boot validation整合hibernate validator实现数据验证,Spring Boot validation使用说明,Spring Boot validat...
Spring Boot 2.0,Spring框架的Spring Boot 中的Spring Boot Actuator变化讲解。并且了解如何在Spring Boot 2.0中使用Actuator...
spring boot框架整合MyBatis数据库暂时选用MySQL
Spring Boot 2.0 绑定properties属性资源文件 Spring Boot 2.0 读取properties配置文件值 Spring Boot 2.0获取properties配...
在这篇文章中,我们将讨论有关使用异步任务执行程序功能在不同线程中执行任务的Spring boot异步执行支持。我们将看看在Spring项目中配置SimpleAsyncTaskExecutor,C...
spring boot入门,spring boot是一个崭新的spring框架分支项目,本文讲解其属性配置相关
spring boot是一个崭新的spring框架分支项目,本文讲解spring boot中controller的常用注解使用