高复用性响应对象类

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;

//保证序列化的时候,如果为null,key也会消失
@JsonInclude(JsonInclude.Include.NON_NULL)
@Getter
@Setter
public class ServerResponse<T> implements Serializable {
    private int status;
    private String msg;
    private T data;

    public ServerResponse() {
    }

    public ServerResponse(int status){
        this.status = status;
    }
    public ServerResponse(int status, String msg){
        this.status = status;
        this.msg = msg;
    }
    public ServerResponse(int status, T data){
        this.status = status;
        this.data = data;
    }
    public ServerResponse(int status, String msg, T data){
        this.status = status;
        this.msg = msg;
        this.data = data;
    }

    //使之不在json序列化结果当中
    @JsonIgnore
    public boolean isSuccess(){
        return this.status == ResultCode.SUCCESS;
    }
    public int getStatus(){
        return status;
    }
    public T getData(){
        return data;
    }
    public String getMsg(){
        return msg;
    }

    public static <T> ServerResponse<T> createBySuccess(){
        return new ServerResponse<T>(ResultCode.SUCCESS);
    }
    public static <T> ServerResponse<T> createBySuccessMassage(String msg){
        return new ServerResponse<T>(ResultCode.SUCCESS, msg);
    }
    public static <T> ServerResponse<T> createBySuccess(T data){
        return new ServerResponse<T>(ResultCode.SUCCESS, data);
    }
    public static <T> ServerResponse<T> createBySuccess(String msg, T data){
        return new ServerResponse<T>(ResultCode.SUCCESS, msg, data);
    }
    public static <T> ServerResponse<T> createByError(){
        return new ServerResponse<T>(ResultCode.FAIL);
    }
    public static <T> ServerResponse<T> createByError(String msg){
        return new ServerResponse<T>(ResultCode.FAIL, msg);
    }
    public static <T> ServerResponse<T> createByErrorCodeMessage(int errorcode, String msg){
        return new ServerResponse<T>(errorcode, msg);
    }
}
常量类:
/**
 * HTTP请求返回状态码
 *
 * @author xxxx
 */
public class ResultCode {

    /**
     * 成功
     */
    public static final int SUCCESS = 0;

    /**
     * 失败
     */
    public static final int FAIL = -1;

    /**
     * 无权限
     */
    public static final int NO_AUTH = -2;
}


原文地址:https://www.cnblogs.com/zhangbLearn/p/10105000.html

时间: 2024-10-10 15:04:28

高复用性响应对象类的相关文章

一、高复用服务响应对象

一. 高复用服务响应对象 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/

(Android)如何将一个高复用性项目供其他项目使用(jar导出,导入,Is Library)(转)

我们做过一个项目,以后这个项目里的代码经常会被其他项目用到.对于这种复用性高的项目(后面称为“项目1”),要被其他项目使用(后面称为“项目2”),为了减少代码量,我们目前有两种方法. 一种方法是:将项目1打包成jar文件,导出,导入到项目2里,供项目2调用. 另一种方法:将项目1作为 Library供项目2调用. 一.jar导出,导入 1.jar导出 现在有一个现成的项目1 功能是竖立的SeekBar 这里面只有一个VerticalSeekBar类,无Activity和资源文件需要打包. 现在我

Java多态——代码复用性

Java中,多态的意为相同的行为,不同的实现. 其中,多态又分为静态多态和动态多态.两者的区别在于:前者在编译器就可以确定运行期的最终结果,即编译时就可以确定调用哪个方法:而后者在编译期则不能确定运行效果,只有运行后,依据所绑定对象的的不同,才能确定运行效果,即运行中系统才能确定方法所指的对象.静态多态主要体现在方法的重载和单独使用方法重写上,而动态多态体现为动态绑定和方法的重写上. 引入动态绑定的概念之前,需要先了解转型技术.转型即数据类型的转换,通常发生在赋值符号左右两边数据类型不同的时候.

探索 ConcurrentHashMap 高并发性的实现机制

简介 ConcurrentHashMap 是 util.concurrent 包的重要成员.本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制. 由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型,所以阅读本文需要读者了解 Java 内存模型.同时,ConcurrentHashMap 的源代码会涉及到散列算法和链表数据结构,所以,读者需要对散列算法和基于链表的数据结构有所了解. Java 内存模型 由

ConcurrentHashMap高并发性的实现原理

ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable.HashTable容器在竞争激烈的并发环境下表现出效率低下的原因是所有访问HashTable的线程都必须竞争同一把锁,那假如容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一把锁

多线程——探索 ConcurrentHashMap 高并发性的实现机制

ConcurrentHashMap 的结构分析 为了更好的理解 ConcurrentHashMap 高并发的具体实现,让我们先探索它的结构模型. ConcurrentHashMap 类中包含两个静态内部类 HashEntry 和 Segment.HashEntry 用来封装映射表的键 / 值对:Segment 用来充当锁的角色,每个 Segment 对象守护整个散列映射表的若干个桶.每个桶是由若干个 HashEntry 对象链接起来的链表.一个 ConcurrentHashMap 实例中包含由若

[探索]在开发中尽量提高代码的复用性

ctrl+c 和 ctrl+v 给我们带来了很多的便利,但是也使我们变得懒惰,不愿思考. 1.前言 相信很多人和我一样,在开发项目的时候,因为项目赶,或者一时没想到等原因.频繁使用 ctrl+c 和 ctrl+v ,导致代码很多都是重复的.这几天,也看了自己以前写的代码,简单的探索了一下,挑选几个实例,分享下如何在特定场景下,保证代码质量前提下,提高代码复用性. 提高代码的复用性,应该是不同场景,不同解决方案的.同时也要保证代码质量.不建议强制提高代码复用性,如果提高代码复用性会大大的降低代码的

关于vsphere高可性

高可用性可以在以下几个层面实现: 1 应用层高可用性:如实现mysql.oracle数据库应用程序的群集,主要是判断mysql.oracle应用程序是否停止运行. 2 操作系统高可用性:如windows的故障转移群集(windows failover clusteringWFC). 3 虚拟化层的高可用性:如vsphere high availability(HA)和vsphere faulttolerance(FT). 4 物理层的高可用性:如:多网络适配器.SAN等. vSphere HA

响应实体类

1.响应实体类 Controller层返回给前端的一个响应实体类: package com.mmall.common; import org.codehaus.jackson.annotate.JsonIgnore; import org.codehaus.jackson.map.annotate.JsonSerialize; import java.io.Serializable; @JsonSerialize(include = JsonSerialize.Inclusion.NON_NUL