基于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)  |