Java秒杀系统---1.使用Result<>向前端传递数据

1.使用Result<T>类来封装发送给前端的数据

  Result<T>类功能:封装需要向前端传递的数据。

  Result<T>类的内部构造:在内部封装三个元素,code,msg,T  data;和两个构造方法,一个用来传递成功信息,另一个用来传递失败信息。

  

 1 package com.app.miaosha.Result;
 2
 3 import lombok.Data;
 4
 5 @Data
 6 public class Result<T> {
 7     private int code;
 8     private String msg;
 9     private T data;
10
11
12     private Result(T data){
13         this.code=0;
14         this.msg="success";
15         this.data=data;
16     }
17
18     private Result(CodeMsg msg){
19         if (msg == null) {
20             return;
21         }
22         this.code = msg.getCode();
23         this.msg = msg.getMsg();
24     }
25
26
27     public static <T> Result<T> success(T data) {
28         return new Result<T>(data);
29     }
30     public static <T> Result<T> error(CodeMsg codeMsg){
31         return new Result<T>(codeMsg);
32     }
33
34 }

2.失败信息的封装类CodeMsg

  为方便用户传输失败信息而建立。包括两个参数:code,message。

  

package com.app.miaosha.Result;

import lombok.Data;

@Data
public class CodeMsg {
    private int code;
    private String msg;

    //通用异常
    public static CodeMsg SERVER_ERROR = new CodeMsg(500100, "服务端异常!");
    public static CodeMsg BIND_ERROR = new CodeMsg(500101, "参数校验异常:%s!");
    public static CodeMsg REQUEST_ILLEGAL = new CodeMsg(500102, "请求非法!");
    public static CodeMsg ACCESS_LIMIT_REACHED = new CodeMsg(500103, "访问太频繁!");

    //登录模块 5002XX
    public static CodeMsg SESSION_ERROR = new CodeMsg(500210, "Session不存在或者已经失效!");
    public static CodeMsg PASSWORD_EMPTY = new CodeMsg(500211, "登录密码不能为空!");
    public static CodeMsg MOBILE_EMPTY = new CodeMsg(500212, "手机号码不能为空!");
    public static CodeMsg MOBILE_ERROR = new CodeMsg(500213, "手机号码格式错误!");
    public static CodeMsg MOBILE_NOT_EXIST = new CodeMsg(500214, "用户不存在!");
    public static CodeMsg PASSWORD_ERROR = new CodeMsg(500215, "密码错误!");
    public static CodeMsg USER_NO_LOGIN = new CodeMsg(500216, "用户未登录!");

    //订单模块 5004XX
    public static CodeMsg ORDER_NOT_EXIST = new CodeMsg(500400, "订单不存在!");

    //秒杀模块 5005XX
    public static CodeMsg SECKILL_OVER = new CodeMsg(500500, "商品已经秒杀完毕!");
    public static CodeMsg REPEATE_SECKILL = new CodeMsg(500501, "不能重复秒杀!");
    public static CodeMsg SECKILL_FAIL = new CodeMsg(500502, "秒杀失败!");

    private CodeMsg(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    @Override
    public String toString() {
        return "CodeMsg{" +
                "code=" + code +
                ", msg=‘" + msg + ‘\‘‘ +
                ‘}‘;
    }
}

  

原文地址:https://www.cnblogs.com/deijiawoyu/p/12662599.html

时间: 2024-08-30 18:26:07

Java秒杀系统---1.使用Result<>向前端传递数据的相关文章

Java秒杀系统实战系列~商品秒杀代码实战

摘要: 本篇博文是"Java秒杀系统实战系列文章"的第六篇,本篇博文我们将进入整个秒杀系统核心功能模块的代码开发,即"商品秒杀"功能模块的代码实战. 内容: "商品秒杀"功能模块是建立在"商品详情"功能模块的基础之上,对于这一功能模块而言,其主要的核心流程在于:前端发起抢购请求,该请求将携带着一些请求数据:待秒杀Id跟当前用户Id等数据:后端接口在接收到请求之后,将执行一系列的判断与秒杀处理逻辑,最终将处理结果返回给到前端.

Java秒杀系统实战系列~整合Shiro实现用户登录认证

摘要: 本篇博文是"Java秒杀系统实战系列文章"的第五篇,在本篇博文中,我们将整合权限认证-授权框架Shiro,实现用户的登陆认证功能,主要用于:要求用户在抢购商品或者秒杀商品时,限制用户进行登陆!并对于特定的url(比如抢购请求对应的url)进行过滤(即当用户访问指定的url时,需要要求用户进行登陆). 内容: 对于Shiro,相信各位小伙伴应该听说过,甚至应该也使用过!简单而言,它是一个很好用的用户身份认证.权限授权框架,可以实现用户登录认证,权限.资源授权.会话管理等功能,在本

Java秒杀系统实战系列~分布式唯一ID生成订单编号

摘要: 本篇博文是"Java秒杀系统实战系列文章"的第七篇,在本博文中我们将重点介绍 "在高并发,如秒杀的业务场景下如何生成全局唯一.趋势递增的订单编号",我们将介绍两种方法,一种是传统的采用随机数生成的方式,另外一种是采用当前比较流行的"分布式唯一ID生成算法-雪花算法"来实现. 内容: 在上一篇博文,我们完成了商品秒杀业务逻辑的代码实战,在该代码中,我们还实现了"当用户秒杀成功后,需要在数据库表中为其生成一笔秒杀成功的订单记录&qu

Java秒杀系统方案优化---高性能高并发实战

Java秒杀系统方案优化---高性能高并发实战网盘地址:https://pan.baidu.com/s/1htNv2zq 密码: ssyt备用地址(腾讯微云):https://share.weiyun.com/889808c023b6e9d9f504399a5b07276f 密码:1WaUHB 亮眼的!高并发秒杀系统核心技术 课程以"秒杀"场景为例,但技术都是通用的,举一反三,方得始终应对大并发:多层次多粒度缓存+消息队列异步+服务器分布式部署 专业的压测工具:有依有据,鉴证系统的优化

Java秒杀系统实战系列~整合RabbitMQ实现消息异步发送

摘要: 本篇博文是“Java秒杀系统实战系列文章”的第八篇,在这篇文章中我们将整合消息中间件RabbitMQ,包括添加依赖.加入配置信息以及自定义注入相关操作组件,比如RabbitTemplate等等,最终初步实现消息的发送和接收,并在下一篇章将其与邮件服务整合,实现“用户秒杀成功发送邮件通知消息”的功能! 内容: 对于消息中间件RabbitMQ,想必各位小伙伴没有用过.也该有听过,它是一款目前市面上应用相当广泛的消息中间件,可以实现消息异步通信.业务服务模块解耦.接口限流.消息分发等功能,在微

项目四:Java秒杀系统方案优化-高性能高并发实战

技术栈 前端:Thymeleaf.Bootstrap.JQuery 后端:SpringBoot.JSR303.MyBatis 中间件:RabbitMQ.Redis.Druid 功能模块 分布式会话,商品列表页,商品详情页,订单详情页,系统压测,缓存优化,消息队列,接口安全. 一.项目框架搭建 1.Spring Boot环境搭建 2.集成Thymeleaf,Result结果封装 3.集成Mybatis+Druid 4.集成Jedis+Redis安装+通用缓存Key封装 二.实现登录功能 1.数据库

Java秒杀系统方案优化视频教程 Java高性能高并发实战

第1章 课程介绍及项目框架搭建 技术选型思路分析,基于Maven的Spring-Boot工程框架的搭建,集成Thymeleaf,集成Mybatis,安装Redis,集成Redis等等. 第2章 实现用户登录以及分布式session功能 实现用户登录功能,实现密码两次MD5入库以及分布式Session.一则熟悉SpringBoot开发模式和该选型下的技术衔接,二则为后面的秒杀功能提供必备的用户信息. 第3章 秒杀功能开发及管理后台 实现秒杀的交互设计和秒杀功能的前端和后台实现,随着后期优化策略,秒

Java秒杀系统--4.实现秒杀接口

简介 实现秒杀接口 1.访问秒杀接口 在秒杀商品详情页面中,点击立即秒杀按钮就可以访问秒杀接口了. onclick="getPath()" id="buyButton">开始秒杀</button>:调用getPath(),因为对秒杀接口进行了接口隐藏,所以要先获取path值,然后到url中,才能对秒杀接口进行访问. 2.后端处理获取path的请求,起到隐藏秒杀接口的功能 1 @AccessLimit(seconds = 120,maxCount =

Java秒杀系统方案优化 高性能高并发实战 视频教程

第1章 课程介绍及项目框架搭建 1-1 Java高并发商城秒杀优化导学 1-2 项目环境搭建(Eclipse) 1-3 项目环境搭建(IDEA) 1-4 集成mybatis 1-5 安装redis 1-6 集成redis上 1-7 集成redis中 1-8 集成redis下第2章 实现用户登录以及分布式session功能 2-1 两次md5 2-2 登录功能实现上 2-3 登录功能实现下 2-4 jsr303参数校验 2-5 异常处理 2-6 分布式session上 2-7 分布式session