秒杀模块碎碎念笔记(2)-Service层
来源:互联网 发布:动漫 神作 知乎 编辑:程序博客网 时间:2024/05/21 06:13
dto:web与service层之间传输用
一般需要不同变量的构造方法来返回不同状态的结果
定义错误类:
public class SeckillException extends RuntimeException { public SeckillException(String message) { super(message); } public SeckillException(String message, Throwable cause) { super(message, cause); }}
通常定义一个总的错误类型,然后其他子错误继承它,并为具体service接口定义抛出的异常
在service整体补抓异常,除了我们自己定义的异常外,dao层还可能出现数据库断开连接/数据库超时等异常
编译时异常整体抛出时,先要捕捉子类异常
打印错误日志
private Logger logger= LoggerFactory.getLogger(this.getClass());logger.error(e.getMessage(),e);
枚举的使用:
public enum SeckillStatEnum { SUCCESS(1,"秒杀成功"), END(0,"秒杀结束"), REPEAT_KILL(-1,"重复秒杀"), INNER_ERROR(-2,"系统异常"), DATE_REWRITE(-3,"数据篡改"); private int state; private String info; SeckillStatEnum(int state, String info) { this.state = state; this.info = info; } public int getState() { return state; } public String getInfo() { return info; } public static SeckillStatEnum stateOf(int index) { for (SeckillStatEnum state : values()) { if (state.getState()==index) { return state; } } return null; }}
public SeckillExecution(long seckillId, SeckillStatEnum statEnum, SuccessKilled successKilled) { this.seckillId = seckillId; this.state = statEnum.getState(); this.stateInfo = statEnum.getInfo(); this.successKilled = successKilled;}
spring-service 放所有service有关,自动包括子包
事务只有在抛出运行时异常才回滚,不要乱用trycatch,因为如果有异常的话还是会被提交
尽可能保证执行时间短:不要穿插网络请求,也就是不要在事务方法里面写运行时间长的事务
如果需要长时间的方法:需要剥离,写到上层就可以
不是所有的方法都需要事务:只有一条修改操作/只读操作
需要了解行级锁的内容
idea xml 中在一个配置文件中引入另外一个文件的bean可能会出错,但是运行其实是没错的
阅读全文
0 0
- 秒杀模块碎碎念笔记(2)-Service层
- 秒杀模块碎碎念笔记(1)-Dao层
- 秒杀模块碎碎念笔记(3)-WEB层
- 秒杀系统Service层设计
- 基于Spring+SpringMVC+Mybatis的秒杀系统之Service层(2)
- Java高并发秒杀API(二)之Service层
- android笔记之碎碎念
- Symbian 碎碎念2
- 碎碎念【2】- 熟能生巧
- 碎碎念2
- 碎碎碎碎念
- JAVA高并发秒杀系统构建之——Service层
- 4.29 SSM项目实战(二)--秒杀系统api之Service层
- 三、高并发秒杀API之Service层设计与实现
- Java高并发秒杀API之service层实现(二)
- 菜鸟碎碎念之html学习笔记
- python_数据分析_笔记碎碎念
- 我的碎碎念笔记-DL-1
- [PAT乙级]1064. 朋友数(20)
- JVM运行时数据区和垃圾回收机制
- 秒杀模块碎碎念笔记(1)-Dao层
- OGNL的对象栈栈map栈详解
- [PHP] GD库(十)绘制线段与圆弧 imageline、imagesetstyle 与 imagearc 函数
- 秒杀模块碎碎念笔记(2)-Service层
- [PHP] GD库(十一)图像填充 imagefill、imagefilledarc 与 imagefilledrectangle() 函数
- Spring 实现AOP的四种方式
- 《零基础入门学习Python》学习过程笔记【012列表的常用函数,逻辑关系,+,*,in,列表推导式】
- Linux中JAVA的安装配置
- java实例对象的创建方式
- 杭电acm1164 分解成质因数
- 几个常用快速无损压缩算法性能比较
- 宜信2017 数据挖掘笔试题(广度优先遍历)