一、高复用服务响应对象

一、 高复用服务响应对象

  1 package com.mmall.common;
  2
  3 import com.fasterxml.jackson.annotation.JsonIgnore;
  4 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  5
  6 import java.io.Serializable;
  7
  8 /**
  9  * 高复用服务响应对象
 10  *
 11  * Created by ly on 2018/6/11.
 12  */
 13 @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 14 public class ServerResponse<T> implements Serializable {
 15
 16     /**
 17      * 状态码
 18      */
 19     private  int status;
 20
 21     /**
 22      * 响应信息
 23      */
 24     private  String msg;
 25
 26     /**
 27      * 响应数据
 28      */
 29     private T data;
 30
 31     /**
 32      * 构造函数
 33      *
 34      * @param status
 35      */
 36     private ServerResponse(int status) {
 37         this.status = status;
 38     }
 39
 40     private ServerResponse(int status, String msg) {
 41         this.status = status;
 42         this.msg = msg;
 43     }
 44
 45     private ServerResponse(int status, T data) {
 46         this.status = status;
 47         this.data = data;
 48     }
 49
 50     private ServerResponse(int status, String msg, T data) {
 51         this.status = status;
 52         this.msg = msg;
 53         this.data = data;
 54     }
 55
 56     /**
 57      * 根据状态码返回是否成功
 58      * JsonIgnore使被注解内容不在json序列化结果当中
 59      *
 60      * @return
 61      */
 62     @JsonIgnore
 63     public boolean isSuccess() {
 64         return this.status == ResponseCode.SUCCESS.getCode();
 65     }
 66
 67     /**
 68      * 暴露获取属性的方法
 69      *
 70      * @return
 71      */
 72     public  int getStatus() {
 73         return  this.status;
 74     }
 75
 76     public  String getMsg() {
 77         return  this.msg;
 78     }
 79
 80     public  T getData() {
 81         return  this.data;
 82     }
 83
 84     /**
 85      * 通过该公开方法直接获取一个成功状态码的本对象
 86      *
 87      * @param <T>
 88      * @return
 89      */
 90     public static <T> ServerResponse<T> createBySuccess() {
 91         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode());
 92     }
 93
 94     public static <T> ServerResponse<T> createBySuccess(String msg) {
 95         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(), msg);
 96     }
 97
 98     public static <T> ServerResponse<T> createBySuccess(T data) {
 99         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(), data);
100     }
101
102     public static <T> ServerResponse<T> createBySuccess(String msg, T data) {
103         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(), msg, data);
104     }
105
106     /**
107      * 获取错误对象
108      *
109      * @param <T>
110      * @return
111      */
112     public static <T> ServerResponse<T> createByError() {
113         return new ServerResponse<T>(ResponseCode.ERROR.getCode(), ResponseCode.ERROR.getDesc());
114     }
115
116     public static <T> ServerResponse<T> createByError(String msg) {
117         return new ServerResponse<T>(ResponseCode.ERROR.getCode(), msg);
118     }
119
120     public static <T> ServerResponse<T> createByError(int errorCode, String errorMessage) {
121         return new ServerResponse<T>(errorCode, errorMessage);
122     }
123
124 }

二、 响应枚举类

 1 package com.mmall.common;
 2
 3 /**
 4  * 响应的枚举类
 5  *
 6  * Created by ly on 2018/6/11.
 7  */
 8 public enum  ResponseCode {
 9
10     SUCCESS(0,"SUCCESS"),
11     ERROR(1,"ERROR"),
12     NEED_LOGIN(10,"NEED_LOGIN"),
13     ILLEGAL_ARGUMENT(2,"ILLEGAL_ARGUMENT");
14
15     private final int code;
16     private final String desc;
17
18     // 这里使用default的修饰,只允许类内部及本包调用
19     ResponseCode(int code, String desc) {
20         this.code = code;
21         this.desc = desc;
22     }
23
24     /**
25      * 暴露获取属性的方法
26      *
27      * @return
28      */
29     public int getCode() {
30         return code;
31     }
32     public String getDesc() {
33         return desc;
34     }
35 }

原文地址:https://www.cnblogs.com/liyue-sqsf/p/9175627.html

时间: 2024-11-09 02:42:25

一、高复用服务响应对象的相关文章

高复用性响应对象类

ServerResponse响应类: import com.cxsz.ibosspro.common.constant.ResultCode; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Getter; import lombok.Setter; import java.io.Serializable;

微软智能云布局高端服务,全面升级云计算竞争

根据标准普尔Capital IQ的数据显示,2015年IBM股价下跌14.2%,甲骨文投资者得到的是18.8%的负回报率,但微软股价却飙升了19.4%.在微软的新三大业务中,云计算是重中之重.尽管亚马逊云和微软长期领先Gartner的全球IaaS云计算市场魔力象限,但实际上2015年微软已经开始重点发力更高一级的PaaS市场. 在2016年1月29日发布的微软2016财年第二财季财报(截止2015年12月31日)中,按固定汇率计算微软智能云Azure收入增长140%,其中高端服务收入比去年同期增

免费的容器架构可视化工具 | 阿里云应用高可用服务 AHAS 发布重大新特性

工具下载链接:点这里.活动发布链接:点这里. 采用容器服务后,了解容器之间的关系及依赖是一个比较有挑战的问题.容器化改造后的实际架构模型可能与预想的架构存在较大的差异,架构师或系统运维人员需要精确地了解资源实例的构成和交互情况,存在一定的困难.其次,系统架构在动态演化过程中可能引入了一些不可靠的因素,比如弱依赖变强依赖.局部容量不足.系统耦合过重等,给系统的稳定性带了极大的安全隐患.所以我们每次在面对系统改造.业务大促.迁移上云以及稳定性治理工作之前,都会通过梳理架构图的方式,呈现系统架构中个组

restTemplate源码解析(五)处理ClientHttpResponse响应对象

所有文章 https://www.cnblogs.com/lay2017/p/11740855.html 正文 上一篇文章中,我们执行了ClientHttpRequest与服务端进行交互.并返回了一个ClientHttpResponse的实例对象. 本文将继续最后一个部分,处理请求后的响应. 同样的,我们再次回顾一下restTemplate核心逻辑代码 protected <T> T doExecute(URI url, @Nullable HttpMethod method, @Nullab

网站高可用服务

网站高可用服务: 1.分级管理 2.超时设置 3.异步调用 4.服务降级 5.幂等性设计

Windows Azure下Apache高可用服务配置介绍

pWindows Azure下Apache高可用服务配置介绍/p  pAzure现在不是一个什么新鲜话题了,但可以说Azure的功能还在逐渐增加,包括性能上的优化,具体就不多介绍了,近期呢闲着没事,就尝试在Azure上部署Apache服务的高可用性部署,如果在本地部署Apache服务的高可用性的话,会用到LVS+Keepalived等服务来实现Apache的高可用性配置,如果我们将Apache服务部署到windows azure上的话,就省去了LVS+Keepalived的配置,所以相对比较简单

Linux基于heartbeat配置httpd高可用服务

Heartbeat是一个基于Linux开源的,被广泛使用的高可用集群系统.我们可以基于Heartbeat构建web高可用服务环境.本文在CentOS 6.5下做了一个简单示例,并对其日志进行了初步分析,供大家参考. 有关Heartbeat的相关知识,可以参考: Heartbeat 集群组件概述 Heartbeat 安装及配置 一.配置host解析及网络 ###主机名配置,与/etc/hosts中的解析两者配置保持一致 [[email protected] ~]# more /etc/syscon

Nginx (三) 使用Keepalived搭建高可用服务

Nginx可以实现高并发反向代理,实现负载均衡,但是有个问题就是Nginx是单点的.如果Nginx故障,则整个服务将会处于不可用状态.所以我们就需要想办法让nginx高可用,即使一个Nginx宕机,还可以有其他的Nginx来支持服务.现在我们通过Keepalived的就可以实现多台Nginx作为主备机,当主机宕机时,可以让备机切换成主机继续提供服务,对整个用户服务几乎没有影响. 1. Keepalived介绍 Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP

Android窗口管理服务相关对象的创建流程

最近在分析Android的窗口管理服务,现在分析完了窗口管理服务相关的对象的创建过程,为了清晰的表示窗口管理服务相关对象的创建过程,就整个创建过程整理了流程图如下所示. 该图是基于 Android4.4 分析出来的,现在贴出来,希望能够帮到对输入管理服务(IMS)有兴趣的人.也希望和大家就输入管理服务交流. 版权声明:本文为博主原创文章,未经博主允许不得转载.