// TODO Auto-generated method stub
if (md5 == null || !md5.equals(getMD5(seckillId))){
throw new SeckillException("seckill data rewrite by client!");
}
这里有BUG 已经 修改 在md5equals的方法前面 要加上 !取反
if (md5 == null || !md5.equals(getMD5(seckillId))){
throw new SeckillException("seckill data rewrite by client!");
}
这里有BUG 已经 修改 在md5equals的方法前面 要加上 !取反
2016-09-29
完整代码地址:https://github.com/firery/imooc-seckill
代码都有完整的注释,依赖更新为目前的最新版本,数据库采用MySQL 8.0。
另外有少许优化,比如最后的浏览器计时误差等。
代码都有完整的注释,依赖更新为目前的最新版本,数据库采用MySQL 8.0。
另外有少许优化,比如最后的浏览器计时误差等。
2016-09-27
老师讲的真心不错,条理清晰,而且分层也很明确,最近一直被这些问题弄的晕晕的,听了老师的课程,思路的确清晰多了。很喜欢这套教程。在此感谢老师的教程。
2016-09-27
写代码真的太熟练了。是我看的慕课上的讲的最好的一门课,受益匪浅。谢谢老师的奉献!!!
2016-09-25
最新回答 / HeroChan
com.alibaba.druid.pool.DruidDataSource 用的连接池 是alibaba的吗?SeckillExcution [seckillId=1000, state=1, stateInfo=秒杀成功, successSeckillded=SuccessSeckill [seckillid=1000, userPhone=13623278092, state=-1, createTime=Sat Sep 24 20:58:13 CST 2016]][org.springframew...
2016-09-24
在别处看到类似的例子 那里的XXServiceTest类里面的加上 @Transational 标注,原因是:
Transactional 注释标签是表明此测试类的事务启用,这样所有的测试方案都会自动的 rollback,即您不用自己清除自己所做的任何对数据库的变更了。
老师的方法虽然包含集成测试代码完整逻辑,可以重复执行,但好像不能没有用到spring test 框架的这个rollback功能。
Transactional 注释标签是表明此测试类的事务启用,这样所有的测试方案都会自动的 rollback,即您不用自己清除自己所做的任何对数据库的变更了。
老师的方法虽然包含集成测试代码完整逻辑,可以重复执行,但好像不能没有用到spring test 框架的这个rollback功能。
2016-09-20
“关于同类中调用事务方法的时候有个坑” 解决方案
1、如果是基于接口动态代理 是没有问题的,直接使用接口调用
2、如果是基于class的动态代理 可以用 AopContext.currentProxy() 解决,注意剥离方法一定是public 修饰 !!
1、如果是基于接口动态代理 是没有问题的,直接使用接口调用
2、如果是基于class的动态代理 可以用 AopContext.currentProxy() 解决,注意剥离方法一定是public 修饰 !!
2016-09-19