为了账号安全,请及时绑定邮箱和手机立即绑定
  • 秒杀业务接口的设计应该站在“使用者”的角度,从四个方面着手:①方法定义的粒度②参数③返回值类型④可能抛出异常的类型; 在编写接口的过程中,设计接口方法名以及方法参数的时候,更多的是考虑返回值类型,这里封装了DTO(也就是数据传输层),根据具体的方法来设计返回的参数类型,以及有可能抛出的异常,并对异常进行定义。在有可能抛出异常的地方,抛异常的时候,除了抛出“最大”的异常之外,还应该提醒用户这里可能抛出的子类异常,使得在后续编写代码的过程中正确处理这些异常。 在执行秒杀的方法中用到了MD5加密进行用户信息以及秒杀信息的校验。 业务接口截图2
    查看全部
  • 秒杀业务接口的设计应该站在“使用者”的角度,从四个方面着手:①方法定义的粒度②参数③返回值类型④可能抛出异常的类型; 在编写接口的过程中,设计接口方法名以及方法参数的时候,更多的是考虑返回值类型,这里封装了DTO(也就是数据传输层),根据具体的方法来设计返回的参数类型,以及有可能抛出的异常,并对异常进行定义。在有可能抛出异常的地方,抛异常的时候,除了抛出“最大”的异常之外,还应该提醒用户这里可能抛出的子类异常,使得在后续编写代码的过程中正确处理这些异常。 在执行秒杀的方法中用到了MD5加密进行用户信息以及秒杀信息的校验。 业务接口截图1
    查看全部
  • java异常分编译期异常和运行期异常,运行期异常不需要手工try-catch,spring的的声明式事务只接收运行期异常回滚策略,非运行期异常不会帮我们回滚 秒杀相关业务异常基类
    查看全部
  • java异常分编译期异常和运行期异常,运行期异常不需要手工try-catch,spring的的声明式事务只接收运行期异常回滚策略,非运行期异常不会帮我们回滚 秒杀关闭异常
    查看全部
  • java异常分编译期异常和运行期异常,运行期异常不需要手工try-catch,spring的的声明式事务只接收运行期异常回滚策略,非运行期异常不会帮我们回滚 重复秒杀异常
    查看全部
  • dto封装秒杀执行后结果
    查看全部
  • dto表示与业务本身不相关的实体类,一般用来表示web界面需要展示的实体
    查看全部
  • DAO以下不包含业务逻辑:接口设计 + SQL编写 代码和SQL的分离,方便Review 业务逻辑在Service层实现
    查看全部
  • 配置声明式事务 1、配置事务管理器 2、配置基于注解的声明式事务 3、@Transactional 使用注解控制事务方法的有点 1.开发团队达成一致约定,明确标注事务方法的编程风格。 2.保证事务方法的执行时间尽可能短,不要穿插其他网络操作RPC/HTTP请求或者剥离到事务方法外部 3.不是所有的方法都需要事务,如只有一条修改操作,只读操作不需要事务控制
    查看全部
  • 声明式事务: 声明式事务目的在于解脱繁琐的关于事务的代码, 在实际的开发中,不需要关心事务的开启、提交、回滚、关闭等等,而是直接交由第三方框架托管,比如spring。 第二中方法:tx:advice+aop命名空间(一次配置永久生效) 第三中方法:@Transactional(注解控制) 本例推荐使用第三种基于注解的声明式事务的方法,这种方式的优点在于,当看到@Transcation注解的时候知道这是一个与事务有关的方法,此时就会自觉遵守一些关于事务开发的规范,有利于程序的进一步维护。 Spring在抛出运行期异常时会回滚事务,两点注意: 1 非运行期异常时要注意,防止出现部分成功部分失败的情况(所以自己封装异常时,在需要的地方要implements RuntimeException)。 2 小心使用try-catch:被try-catch块包裹起来的异常Spring也是感觉不到的。
    查看全部
  • 扫描service包下所有使用注解的类型 <context:component-scan base-package="org.seckill.service"/> @component 标识是一个组件,不知道到底是什么组件 如果知道具体是哪个组件,就用下面的具体标识 @Service 就是一个service @Dao dao @Controller web层入口 在service的impl类中添加annotation。首先为class添加@service,其次为初始化对象,如private SeckillDao seckillDao添加@Autowired //@Resource, @Inject:j2ee规范的注解,@Autowired:spring自身定义的注解
    查看全部
  • Spring-IOC注入方式和场景
    查看全部
  • public enum SeckillStateEnum { SUCCESS(1, “秒杀成功”), END(0, “秒杀结束”), REPEAT_KILL(-1, “重复秒杀”), INNER_ERROR(-2, “系统异常”), DATA_REWRITE(-3, “数据篡改”); private int state; private String stateInfo; SeckillStateEnum(int state, String stateInfo) { this.state = state; this.stateInfo = stateInfo; } public int getState() { return state; } public String getStateInfo() { return stateInfo; } public static SeckillStateEnum stateOf(int index) { for (SeckillStateEnum state : values()) { if (state.getState() == index) { return state; } } return null; } }
    查看全部
  • IOC在本项目中的使用
    查看全部
  • 一个方法需要修改两条以上的数据时,建议使用事务
    查看全部

举报

0/150
提交
取消
课程须知
《Java高并发秒杀API》是系列课程,共四门课,分别为业务分析和DAO层,Service层,Web层和高并发优化。本门课程是第二门课程,学习前需要了解如下知识: 1、精通JavaWeb基础 2、熟悉SpringMVC、Spring和MyBatis框架 3、学习《Java高并发秒杀API之业务分析与DAO层》课程
老师告诉你能学到什么?
1、掌握秒杀业务 2、能够进行SpringMVC+Spring+MyBatis的整合开发 3、能够进行Service层的设计与实现

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!