秒杀Servlce接口设计
秒杀Servlce接口设计
1、创建service包,创建SecKillServlce业务接口
SecKillServlce.Java
|
package org.secKill.service; import java.util.List; /** |
建立dto包,创建暴露秒杀接口dto(数据传输层)
Exposer.java
|
package org.secKill.dto; /** public Exposer(boolean exposed, String md5, long secKillId) { public Exposer(boolean exposed, String md5, long start, long secKillId, long end) { public Exposer(boolean exposed, long secKillId) { public boolean isExposed() { public void setExposed(boolean exposed) { public String getMd5() { public void setMd5(String md5) { public long getSecKillId() { public void setSecKillId(long secKillId) { public long getStart() { public void setStart(long start) { public long getEnd() { public void setEnd(long end) { @Override |
创建包enums,创建枚举类型SecKillStateEnum.java使用枚举表述数据常量字典
SecKillStateEnum.java
|
package org.secKill.enums; /** SUCCESS(1, "秒杀成功"), END(0, "秒杀结束"), REPEAT_KILL(-1, "重复秒杀"), INNER_ERROR(-2, "系统异常"), DATA_REWRITE(-3, "数据篡改"); private int state; private String stateInfo; private SecKillStateEnum(int state, String stateInfo) { public int getState() { public String getStateInfo() { public static SecKillStateEnum stateOf(int index) { } |
在dto包内创建封装秒杀执行后结果类SecKillExecution.java
|
package org.secKill.dto; import org.secKill.entity.SuccessKilled; /** public SecKillExecution(long secKillId, SecKillStateEnum stateEnum , SuccessKilled successKilled) { } public SecKillExecution(long secKillId,SecKillStateEnum stateEnum) { public long getSecKillId() { public void setSecKillId(long secKillId) { public int getState() { public void setState(int state) { public String getStateInfo() { public void setStateInfo(String stateInfo) { public SuccessKilled getSuccessKilled() { public void setSuccessKilled(SuccessKilled successKilled) { |
创建包exception创建三个异常
创建SecKillException.java 秒杀执行异常
|
package org.secKill.exception; /** |
重复秒杀异常RepeatKillException.继承SecKillException.java
|
package org.secKill.exception; import org.secKill.dto.SecKillExecution; /** public RepeatKillException(String message, Throwable cause) { |
创建SecKillException.java,表示秒杀关闭异常
|
package org.secKill.exception; /** public SecKillCloseException(String message, Throwable cause) { |
秒杀Servlce接口设计的更多相关文章
- 高并发秒杀系统--Service接口设计与实现
[DAO编写之后的总结] DAO层 --> 接口设计 + SQL编写 DAO拼接等逻辑 --> 统一在Service层完成 [Service层的接口设计] 1.接口 ...
- SSM实战——秒杀系统之Service层接口设计与实现、Spring托管、声明式事务
一:Service层接口设计 准备工作:新建三个包:service包.exception包.dto包,分别用来存放业务接口.自定义异常类.dto类. 1:定义接口 package org.myseck ...
- 数据仓储之DLL层接口设计
一.接口设计 1.1. IBaseRepository.cs public interface IBaseRepository<T> { T Add(T entity); bool Upd ...
- RESTful接口设计原则/最佳实践(学习笔记)
RESTful接口设计原则/最佳实践(学习笔记) 原文地址:http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api 1 ...
- Web API接口设计经验总结
在Web API接口的开发过程中,我们可能会碰到各种各样的问题,我在前面两篇随笔<Web API应用架构在Winform混合框架中的应用(1)>.<Web API应用架构在Winfo ...
- Verilog学习笔记简单功能实现(七)...............接口设计(并行输入串行输出)
利用状态机实现比较复杂的接口设计: 这是一个将并行数据转换为串行输出的变换器,利用双向总线输出.这是由EEPROM读写器的缩减得到的,首先对I2C总线特征介绍: I2C总线(inter integra ...
- 优秀的API接口设计原则及方法(转)
一旦API发生变化,就可能对相关的调用者带来巨大的代价,用户需要排查所有调用的代码,需要调整所有与之相关的部分,这些工作对他们来说都是额外的.如果辛辛苦苦完成这些以后,还发现了相关的bug,那对用户的 ...
- atitit.基于http json api 接口设计 最佳实践 总结o7
atitit.基于http json api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...
- App接口设计
关于APP接口设计 http://blog.csdn.net/gebitan505/article/details/37924711/
随机推荐
- 腾讯重磅开源分布式NoSQL存储系统DCache
当你在电商平台秒杀商品或者在社交网络刷热门话题的时候,可以很明显感受到当前网络数据流量的恐怖,几十万商品刚开抢,一秒都不到就售罄:哪个大明星出轨的消息一出现,瞬间阅读与转发次数可以达到上亿.作为终端用 ...
- PAT甲级终结——心得总结
首先报喜一波 第一次考,满分,4道题总共花了2个小时做完,一部分是题简单的原因,一部分也是自己三刷了PAT的心血吧. 刷PAT的经验 神指导: 胡凡-<算法笔记> 神助攻:柳婼的博客,百度 ...
- Linux的tail命令查看文件
小文件一般用cat 查看,但是如果文件内容过多,用cat就不合适了 可以用tail命令 # 默认显示文件最后十行 tail a.txt # 监视文件的尾部内容,默认十行, 可以-n 20显示20行 ...
- (4.31)quotename函数
操作sql server尤其是写存储过程时,要用到各种各样的函数,今天就总结一个quotename()的用法. 1.语法: quotename(‘character_string’[,‘quote_c ...
- UVA 12849 Mother’s Jam Puzzle( 高斯消元 )
题目: http://uva.onlinejudge.org/external/128/12849.pdf #include <bits/stdc++.h> using namespace ...
- 你浏览器的书签栏还够用么? - 程序员学点xx 特辑
lluxury 运维开发时间 为什么会想到这个话题,是因为最近看到的一条广告:注册 xx 送2048GB资料.yann 暗自感慨:"都9012年了,还有人分享家里的祖传硬盘".2T ...
- Linux mint启用内核转储
1.查看当前是否启动了内核转储: star@sky:~$ ulimit -c unlimited 2.如果上面显示为0,即没有开启,那么,直接执行 ulimit -c unlimited 就好了. 3 ...
- 回溯---Permutations II
47.Permutations II (Medium)](https://leetcode.com/problems/permutations-ii/description/) [1,1,2] hav ...
- C# EF优化
原文:https://www.cnblogs.com/wangyuliang/p/10338902.html https://www.cnblogs.com/simadi/p/6879366.ht ...
- python面向对象--类的内置函数
#isinstance(obj,cls)判断obj是否是类cls的实例 #issubclass(cls,cls1)判断cls是否是cls1的子类或派生类 class Foo: pass class B ...