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

编程教程 > Java > Spring (2013) 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 入门 AOP 日志处理,这里主要讲解spring boot 中采用AOP方式进行日志的统一处理。spring 框架的处理也是一样。综合来讲,本文主要讲解了spring b...
前言spring boot 项目常用的几个类设计,方便快速搭建项目错误处理模块。代码片段 错误枚举定义@Getterpublic enum ErrorCodeE
       ​Spring Boot       这里主要对Spring Boot 项目和Spring MVC 相关项目中,日期参数的使用以及Ajax请求日期数据返回格式的处理
spring boot mybatis 整合使用讲解介绍,spring boot与MyBatis的使用讲解介绍。spring boot mybatis xml mapper方式的入门和通过一个简...
前言使用Spring Boot 3 Security 6.2 JWT 完成无状态的REST接口认证和授权管理。环境JDK 17Spring Boot 3.3.2
spring boot框架整合MyBatis数据库暂时选用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...
Spring Boot 2.0,Spring框架的Spring Boot 中的Spring Boot Actuator变化讲解。并且了解如何在Spring Boot 2.0中使用Actuator...
Spring Boot 2.0 绑定properties属性资源文件 Spring Boot 2.0 读取properties配置文件值 Spring Boot 2.0获取properties配...
spring boot webflux client实战,webclient是spring webflux的一个小组件。对于Java的http通讯来说,webclient是非常简单易用的。
spring boot 入门之整合spring session实现session共享。一直以来Java编程中web项目中的session共享问题都是一个很难解决的问题。接下来将讲解通过sprin...