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 ...
随机推荐
- elementUI upload 对图片的宽高做校验
很开心今天中午没有吃饭!原因是一直没有解决掉一个小问题,于是一直试错,最后看了下源码才有了点头绪,历时四五个小时才解决掉,有点怀疑自己的能力了,所以写下此文,记录一下今天的囧况!一般情况下遇到问题,自 ...
- 1.4 Python基础知识 - 代码书写格式及条件判断"if ... else ..."
一.代码的书写规则 在所有的开发语言中,代码之间都是有关联的关系,有的是包含关系,有的是上下级关系,有的是代表语句的结束.在python中也是有相应的规则的: 1.在没有上下级关系的代码中,代码要顶行 ...
- sql基础知识集锦
Sql常用语法 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT ...
- 宏的使用 extern
声明全局变量使用的技术. 有些时候C语言的一些条条框框就像语法.学会C语言就是学会了语法. 但是语法怎样使用就又是另一回事了. 我希望自己能多学习一些技巧,而不是一些固定的C语言语法. 这篇文章真的很 ...
- 基于StringUtils工具类的常用方法介绍(必看篇)
前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false is ...
- Android layer-list的属性和使用具体解释
Android layer-list的属性和使用具体解释.layer-list是用来多个图层堆叠显示的,借这个特性能够做一些特别的效果(比方:阴影.以下的效果等),也能够投机取巧. 1.代码片 < ...
- 谁要的手机用KRKR2 Onscripter 资源打包工具
本软件能够把你手机上指定文件夹打包为文字冒险游戏资源文件 支持打包 1.Onscripter 的NSA格式 2.吉里吉里2(KRKR2)的XP3.(分2.29曾经的旧版本号和2.30以后新版本号) 3 ...
- 基于PHP实现一个简单的在线聊天功能(轮询ajax )
基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...
- Spring+Netty+WebSocket实例
比较贴近生产,详见注释 一.pom.xml 具体太长,详见源码 </dependency> <dependency> <groupId>io.netty</g ...
- UVALive - 3977 Summits (BFS染色)
题目大意:坑爹的题目.题意那么难理解. 讲的就是,假设该点是山顶的话(高度为h).那么以该点为中心,往外辐射.走高度大于h-d的点,到达不了还有一个比它高的点 这就提示了,高度要从大到小排序,依次以高 ...