Java Web 实用返回结果封装
实用的返回结果封装
使用示例
/**
* @Author: huangwenjun
* @Description:
* @Date: Created in 13:59 2018/3/28
**/
@RestController
@CrossOrigin
@RequestMapping("baofu")
public class ConfigDemoController {
@Autowired
private BaoFooConfig baoFooConfig;
@GetMapping("success")
public Result<String> success() {
return Result.success("success !");
}
@GetMapping("bulid")
public Result<String> bulid() {
return Result.build(ResultEnum.WAIT);
}
@GetMapping("error")
public Result<String> error() {
return Result.success("error !");
}
}
效果
{"code":"0000","msg":"成功","data":"success !"}
{"code":"1111","msg":"正在处理结果","data":null}
{"code":"9999","msg":"error !","data":null}
Result
public class Result<T> {
/**
* 错误码
*/
private String code;
/**
* 提示信息
*/
private String msg;
/**
* 具体的内容
*/
private T data;
/**
* 成功时候的调用
* @param <T>
* @return
*/
public static <T> Result<T> success(T data) {
return new Result<>(data);
}
/**
* 根据返回的状态对象, 构建返回结果
* @param resultEnum
* @param <T>
* @return
*/
public static <T> Result<T> build(ResultEnum resultEnum) {
return new Result<>(resultEnum);
}
/**
* 根据 code, 和 msg 构建返回结果
* @param code
* @param msg
* @param <T>
* @return
*/
public static <T> Result<T> build(String code, String msg) {
return new Result<T>(code, msg);
}
/**
* 根据 code, 和 msg, 和 data 构建返回结果
* @param code
* @param msg
* @param <T>
* @return
*/
public static <T> Result<T> build(String code, String msg, T data) {
return new Result<T>(code, msg, data);
}
/**
* 失败的调用
* @param codeMsg
* @param <T>
* @return
*/
public static <T> Result<T> error(String codeMsg) {
return new Result<>(codeMsg);
}
/**
* 失败的调用 将返回结果传入
* @param data
* @param <T>
* @return
*/
public static <T> Result<T> error(T data) {
return new Result<>(ResultEnum.ERROR.getCode(), ResultEnum.ERROR.getMsg(), data);
}
private Result(T data) {
this.code = ResultEnum.SUCCESS.getCode();
this.msg = ResultEnum.SUCCESS.getMsg();
this.data = data;
}
private Result(String msg) {
this.code = ResultEnum.ERROR.getCode();
this.data = null;
this.msg = msg;
}
private Result(ResultEnum resultEnum) {
this.code = resultEnum.getCode();
this.msg = resultEnum.getMsg();
}
private Result(String code, String msg) {
this.code = code;
this.msg = msg;
}
private Result(String code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
}
ResultEnum
public enum ResultEnum {
SUCCESS("0000", "成功"),
ERROR("9999", "失败"),
WAIT("1111", "正在处理结果");
private String code;
private String msg;
ResultEnum(String code, String msg) {
this.code = code;
this.msg = msg;
}
public String getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
Java Web 实用返回结果封装的更多相关文章
- JAVA WEB SQLHelper类的封装
在这次做项目中,我对自己最满意的就是封装了一下SQLHelper类,我对自己感到骄傲主要是 我是初学者,我刚开始不知道可以这样做,我只是想着试着去这样做了,结果真的可以,所以我 在我的模块就自己封装了 ...
- 五分钟学Java:如何才能学好Java Web里这么多的技术
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...
- 利用过滤器Filter和特性Attribute实现对Web API返回结果的封装和统一异常处理
在我们开发Web API应用的时候,我们可以借鉴ABP框架的过滤器Filter和特性Attribute的应用,实现对Web API返回结果的封装和统一异常处理,本篇随笔介绍利用AuthorizeAtt ...
- 在Java web项目中防止用户注销后使用浏览器中的“后退”按钮返回注销前页面
一背景 公司安全整改, 要求:系统中对于关键业务操作应确保使用浏览器"后退"功能无法回到上一步操作界面. 提供:凭证提供所有被检查系统关键业务操作后回退视频,视频显示关键业务操作后 ...
- java web(四)文件上传与下载
一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...
- Java Web项目中连接Access数据库的配置方法
本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...
- java web学习笔记-jsp篇
1.java web简介 1.1静态页面与动态页面 表现形式 所需技术 静态网页 网页内容固定,不会更新 html,css 动态网页 网页内容由程序动态显示,自动更新 html,css,DB,ja ...
- JAVA web 框架集合
“框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架: 在研究好用和新框架. 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制作,会陆续分享!!! 152款框架,你还 ...
- Java Web教程——检视阅读
Java Web教程--检视阅读 参考 java web入门--概念理解.名词解释 Java Web 教程--w3school 蓝本 JavaWeb学习总结(一)--JavaWeb开发入门 小猴子mo ...
随机推荐
- 洛谷——P1548 棋盘问题
https://www.luogu.org/problem/show?pid=1548#sub 题目描述 设有一个N*M方格的棋盘(l<=N<=100,1<=M<=100)(3 ...
- 洛谷 P1170 兔八哥与猎人
P1170 兔八哥与猎人 题目描述 兔八哥躲藏在树林旁边的果园里.果园有M × N棵树,组成一个M行N列的矩阵,水平或垂直相邻的两棵树的距离为1.兔八哥在一棵果树下. 猎人背着猎枪走进了果园,他爬上一 ...
- [Angular] Protect The Session Id with https and http only
For the whole signup process. we need to Hash the password to create a password digest Store the use ...
- Android内存优化(使用SparseArray和ArrayMap取代HashMap)
在Android开发时,我们使用的大部分都是Java的api,比方HashMap这个api,使用率非常高,可是对于Android这样的对内存非常敏感的移动平台,非常多时候使用一些java的api并不能 ...
- 【习题5-3 UVA-10935】Throwing cards away I
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用STL的queue写 [代码] #include <bits/stdc++.h> using namespace st ...
- AdminLTE的使用(转)
官方文档link1.AdminLTE的必要配置文件<!-- Tell the browser to be responsive to screen width --> <meta c ...
- swift项目第四天:动态加载控制器
一:Appdelegate import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate ...
- widow下svn上传项目时的文件可执行权限问题
还是项目上发现的问题,要上传Android的源码项目.这里客户端是windows的机器, 测试后发现俩个问题. 1. 文件后缀是.so的文件默认上传不了. 2. 文件后缀是.sh的文件,上传后, ...
- FastSocket学习笔记~RPC的思想,面向对象的灵活
首先非常感谢这位来自新浪的老兄,它开发的这个FastSocket非常不错,先不说性能如何,单说它的使用方式和理念上就很让人赞口,从宏观上看,它更像是一种远程过程的调用RPC,即服务器公开一些命令,供客 ...
- Oracle 11gR2 静默安装奇怪错误
在静默安装Oracle 11gR2 的时候发现的奇怪错误,有点摸不着头脑 【步骤一】配置静默文件只安装软件 #--------------------------------------------- ...