泛型--->Result返回结果封装
controller的返回结果一般有两种:
1.Rest API JSON 输出
2.页面
目的:编写优雅的代码
实现:通过泛型对返回结果进行封装
代码如下:
一.控制层
/**
* 获取用户成功
* @return
*/
@RequestMapping("/getUser")
@ResponseBody
public Result<User> getUser(@RequestParam("id") int id){
User user = userService.getUserById(id);
System.out.println(user.toString()); return Result.success(user);
}
返回结果:{"code":0,"message":"SUCCESS","data":{"id":1,"name":"斗战胜佛"}}
/**
* 获取用户失败
* @param id
* @return
*/
@RequestMapping("/getUserFailed")
@ResponseBody
public Result<CodeMsg> getUserFailed(@RequestParam("id") int id){
User user = userService.getUserById(id);
System.out.println(user.toString()); return Result.error(CodeMsg.SERVER_ERROR);
}
返回结果:{"code":500100,"message":"服务端异常","data":null}
二:Result类
public class Result<T> { private int code;
private String message;
private T data; /**
* 成功时调用
* @param data
* @param <T>
* @return
*/
public static <T> Result<T> success(T data){
return new Result<T>(data);
} /**
* 失败时调用
* @param codeMsg
* @param <T>
* @return
*/
public static <T> Result error(CodeMsg codeMsg){
return new Result<T>(codeMsg);
} /**
* 构造方法私有化,不允许外部new Result
* @param data
*/
private Result(T data){
this.code = 0;
this.message = "SUCCESS";
this.data = data;
} /**
* 构造方法私有化,不允许外部new Result
* @param codeMsg
*/
private Result(CodeMsg codeMsg){
if (null == codeMsg) {
return;
}
this.code = codeMsg.getCode();
this.message = codeMsg.getMessage();
} public int getCode() {
return code;
} public void setCode(int code) {
this.code = code;
} public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} public T getData() {
return data;
} public void setData(T data) {
this.data = data;
}
}
三:CodeMsg类
public class CodeMsg { private int code;
private String message; /**
* //通用模块异常 5001XX
*/
public static CodeMsg SUCCESS = new CodeMsg(0,"SUCCESS");
public static CodeMsg SERVER_ERROR = new CodeMsg(500100,"服务端异常"); //登陆模块异常 5002XX
//商品模块异常 5003XX
//订单模块异常 5004XX
//秒杀模块异常 5005XX private CodeMsg(int code, String message) {
this.code = code;
this.message = message;
} public int getCode() {
return code;
} public String getMessage() {
return message;
}
}
泛型--->Result返回结果封装的更多相关文章
- spring boot 接口返回值封装
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- struts2 中的 result 返回类型是 json 的配置问题
struts2 中的 result 返回类型是 json 的配置问题 1.引入包(本文中的包全部引自struts-2.1.8.1\lib): struts2-json-plugin-2.1.8.1.j ...
- Java Web 实用返回结果封装
实用的返回结果封装 使用示例 效果 Result ResultEnum 使用示例 /** * @Author: huangwenjun * @Description: * @Date: Created ...
- .Net Core Mvc/WebApi 返回结果封装
一.背景 为了方便开发,简化代码,也为了与前端方便对接,需要对接口服务返回结果进行统一处理. .Net Core 中返回结果的处理与 .Net Framework 中的处理不一样. .Net Core ...
- Spring Boot API 统一返回格式封装
今天给大家带来的是Spring Boot API 统一返回格式封装,我们在做项目的时候API 接口返回是需要统一格式的,只有这样前端的同学才可对接口返回的数据做统一处理,也可以使前后端分离 模式的开发 ...
- js返回顶部封装 简洁
js返回顶部封装 简洁: 加入html页面body最后面即可. <script> a(); function a() { $(function() { if ($(".j-to- ...
- C#中返回值封装
在平时开发过程中常常需要取一个方法的返回值,BOSS写了一个返回值类,做个练习以备不时之需: 返回值支持泛型和非泛型 先贴上代码: 非泛型返回值类: using System; using Syste ...
- Ajax--json(Ajax调用返回json封装代码、格式及注意事项)
Ajax调用json封装代码<dbda.php>: //Ajax调用返回JSON public function JsonQuery($sql,$type=1,$db="mydb ...
- 泛型(二)封装工具类CommonUtils-把一个Map转换成指定类型的javabean对象
1.commons-beanutils的使用 commons-beanutils-1.9.3.jar 依赖 commons-logging-1.2.jar 代码1: String className ...
随机推荐
- 实验一 Linux系统与应用准备
实验一 Linux系统与应用准备 项目 内容 作业归属 班级课程 作业要求 课程作业要求 学号-姓名 17041419-刘金林 作业学习目标 1.学习博客园软件开发者学习社区使用技巧和经验:2.学习M ...
- C语言程序设计(十) 字符串
第十章 字符串 字符串常量是由一对双引号括起来的一个字符串序列 字符串实际就是由若干个有效数字构成且以字符'\0'作为结束的一个字符序列 C语言没有提供字符串数据类型,因此字符串的存取要用字符型数组来 ...
- redis实现数据库(一)
转:https://www.cnblogs.com/beiluowuzheng/p/9738159.html 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redis ...
- 超强图文|并发编程【等待/通知机制】就是这个feel~
你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough ...
- ES6中的find与filter的区别
一直以来以为find和filter是一样的效果,最近在梳理,才发现是不一样的. 首先,filter和find区别:filter返回的是数组,find返回的是对象. 注意:find()找到第一个元素后就 ...
- ASP.net 简单ajax实现
<script type="text/javascript"> $(function () { var t=$("txt1").val(); $.a ...
- (转)GNU风格ARM汇编语法指南(非常详细)1
原文地址:http://zqwt.012.blog.163.com/blog/static/120446842010111481551809/ 汇编源程序一般用于系统最基本的初始化:初始化堆栈指针.设 ...
- 【分布式锁】01-使用Redisson实现可重入分布式锁原理
前言 主流的分布式锁一般有三种实现方式: 数据库乐观锁 基于Redis的分布式锁 基于ZooKeeper的分布式锁 之前我在博客上写过关于mysql和redis实现分布式锁的具体方案:https:// ...
- 使用docker构建hadoop集群
docker的使用越来越普遍了,大家不知道docker的还需要进一步学习一下.这次咱们使用docker去进行hadoop集群的构建. 使用docker构建的好处真的很多,一台电脑上可以学习安装很多想做 ...
- React Native实现短信转发到微信上
缘由 都说需求来源于生活我为什么会有一个这么奇葩的需求呢?来看一个故事. 昨天为了省点手续费导航走了3公里多去找一家工行ATM机(没办法穷)然后到了以后发现ATM机在人家的园区里面,现在疫情进入要通行 ...