2—service层

dao层只负责对远程数据库进行操作,而不进行逻辑编写
在这里插入图片描述
这样就能互相影响减少,方便review

1、秒杀业务接口设计

先创建三个包
service 负责业务实现
exception 秒杀过程中出现的异常
dto 与entity类似,但它关注web和业务之间的传递

1.1 SeckillService
a、查询所有秒杀记录
b、查询单个秒杀记录
c、秒杀开启是输出秒杀接口地址,否则输出系统时间和秒杀时间
d、执行秒杀操作

1.2 dto下的Exposer.java(定义秒杀开始前的一些参数)
定义md5

1.3 dto下的SeckillExecution(定义秒杀成功后的一些参数)

1.4 exception下的RepeatKillException(抛出重复秒杀的异常)

1.5 exception下的SeckillCloseException(秒杀关闭异常)

1.6 exception下的SeckillException (所有秒杀业务相关的异常)

2、秒杀业务接口实现

2.1 service下的impl下的SeckillServiceImpl
(实现SeckillService下的四个方法)
a、四个方法
b、md5
c、执行秒杀逻辑:减库存+记录购买行为
2.2 创建enums包以及SeckillStatEnum(使用枚举表述常量数据字段)
在这里插入图片描述

3、spring管理service依赖

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
让我在这个地方好好解释一下AOP和IOC吧

AOP:
概念:能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理、日志管理、权限控制等,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性

使用AOP的好处

  • 降低模块的耦合度
  • 使系统容易扩展
  • 提高代码复用性

IOC:
概念: (控制反转)就是依赖倒置原则的一种代码设计思路。就是把原先在代码里面需要实现的对象创建、对象之间的依赖,反转给容器来帮忙实现。
Spring IOC容器通过xml,注解等其它方式配置类及类之间的依赖关系,完成了对象的创建和依赖的管理注入。实现IOC的主要设计模式是工厂模式

你看看借助容器完成自己想达到的目的,不就是控制反转吗?本身容器才是控制者,你这样变成了对象创建、对象依赖(这些脏活累活)全让spring来干了

使用IOC的好处

  • 集中管理,实现类的可配置和易管理。
  • 降低了类与类之间的耦合度。

3.1 使用spring托管service依赖配置

在resources包下spring下创建spring-service.xml

4、使用spring声明事务

在这里插入图片描述
声明式使用的使用方式:注解@Transactional控制

4.1 在spring-service.xml下
a、配置事务管理器
b、配置基于注解的事务

4.2 在SeckillServiceImpl.java下
添加@Transactional注解

5、service集成测试

5.1 对SeckillService.java进行测试
用快捷键ctrl+shift+t创建集中测试类

5.2 添加日志的库

在resources下的spring的logback.xml里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值