基于Spring
整合的Java高并发之秒杀系统Service层开发。
一、秒杀接口设计
异常抛出
每个项目设计过程中都可能出现异常,所以从设计阶段就要考虑异常的处理问题。
在秒杀项目的设计中,异常分为三类:
- 秒杀关闭异常(SeckillCloseException)
- 重复秒杀异常(RepeatkillException)
- 编译期异常转化的运行期异常的秒杀异常(SeckillException)
其中,秒杀关闭异常和重复秒杀异常继承秒杀异常。
秒杀异常继承运行期异常。
暴露秒杀接口
获取秒杀商品的抢购地址,接口防刷,提高代码重用率。
1 |
|
秒杀接口设计
定义秒杀接口SeckillService。
1 | public interface SeckillService { |
二、秒杀接口的实现
实现秒杀接口的方法,命名规范位接口名称+Impl
1 | 实现秒杀接口的方法: |
封装秒杀状态
执行秒杀后,将用户的秒杀状态封装到枚举类。
1 |
|
三、Spring
托管Service
实现类
spring-service.xml
配置文件扫描service包下的注解(@Component
,@Service
,@Dao
,@Controller
),并自动注入到IoC
容器中。
这里扫描@Service
注解。
1 |
|
四、DAO层单元测试
在IDEA中选中需要单元测试的类按下Ctrl+Shift+T,创建测试类。
1 | (SpringJUnit4ClassRunner.class) |