老师讲的挺好的,尤其是js模块化,这里一直是弱项。
参照老师的思路。
自己用spring,springmvc,mybatis,jsp实现了一套,附上源码地址:https://github.com/colg-cloud/seckill
用spring boot,mybatis,通用Mapper,Pagehelper分页插件,thymeleaf模版也实现了一套,附上源码地址:https://github.com/colg-cloud/seckill-boot
准备再完善一下,加入redis缓存。
看到老师后面还有收费课程,有点想买,买过的小伙伴觉得值得购买吗?
参照老师的思路。
自己用spring,springmvc,mybatis,jsp实现了一套,附上源码地址:https://github.com/colg-cloud/seckill
用spring boot,mybatis,通用Mapper,Pagehelper分页插件,thymeleaf模版也实现了一套,附上源码地址:https://github.com/colg-cloud/seckill-boot
准备再完善一下,加入redis缓存。
看到老师后面还有收费课程,有点想买,买过的小伙伴觉得值得购买吗?
2018-04-12
默认spring事务只在发生未被捕获的 runtimeexcetpion(运行期异常)时才回滚。
spring aop 异常捕获原理:
被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获runtimeexception的异常,但可以通过配置来捕获特定的异常并回滚,换句话说在service的方法中不使用try catch 或者在catch中最后加上throw new runtimeexcetpion(),这样程序异常时才能被aop捕获进而回滚。
spring aop 异常捕获原理:
被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获runtimeexception的异常,但可以通过配置来捕获特定的异常并回滚,换句话说在service的方法中不使用try catch 或者在catch中最后加上throw new runtimeexcetpion(),这样程序异常时才能被aop捕获进而回滚。
2018-03-29
是因为同一个商品不同人去购买,生成了多条记录
但是成功后返回SuccessKilled实体的方法
SuccessKilled successKilled = successKilledDao.queryByIdWithSeckill(seckillId);
是根据seckillId查的,因此如果该商品被多个人秒杀时,会返回多条记录
则报错
Expected one result (or null) to be returned by selectOne()
应该将方法修改为queryByIdWithSeckill(seckillId,userPhone);比较合适
但是成功后返回SuccessKilled实体的方法
SuccessKilled successKilled = successKilledDao.queryByIdWithSeckill(seckillId);
是根据seckillId查的,因此如果该商品被多个人秒杀时,会返回多条记录
则报错
Expected one result (or null) to be returned by selectOne()
应该将方法修改为queryByIdWithSeckill(seckillId,userPhone);比较合适
2018-02-24
我也遇到如下这个问题
Caused by: org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
Caused by: org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
2018-02-24