# seckill
一个整合SSM框架的高并发和商品秒杀项目,学习目前较流行的Java框架组合实现高并发秒杀API
## 项目的来源
项目的来源于国内IT公开课平台,质量没的说,很适合学习一些技术的基础,这个项目是由四个系列的课程组成的,流程分为几个流程,很基础地教你接触到一个相对有技术含量的项目
- Java高并发秒杀API之业务分析与DAO层
- Java高并发秒杀API之web层
- Java高并发秒杀API之Service层
- Java高并发秒杀API之高并发优化
其实这几个流程也就是开发的流程,首先从DAO层开始开发,从后往前开发,开始Coding吧!
## 项目环境的搭建
* **操作系统** : Ubuntu 17.04
* **IDE** :IntelliJ IDEA 2016.2.5 x64 用Eclipse也一样的,工具时靠人用的
* **JDK** : JDK1.8 建议使用JDK1.7以上版本,有许多语法糖用着挺舒服的
* **Web容器** : Tomcat 8.0
* **数据库** :Mysql-5.6.17-WinX64 实验性的项目用Mysql就足够啦
* **依赖管理工具** : Maven 管理jar包真的很方便
这里列出的环境不是必须的,你喜欢用什么就用什么,这里只是给出参考,不过不同的版本可能会引起各种不同的问题就需要我们自己去发现以及排查,在这里使用Maven的话时方便我们管理JAR包,我们不用跑去各种开源框架的官网去下载一个又一个的JAR包,配置好了Maven后添加pom文件坐标就会从中央仓库下载JAR包,如果哪天替换版本也很方便
---
## 项目效果图
- 秒杀商品列表
![效果图](/images/result_1.jpg)
- 秒杀结束提示界面
![效果图](/images/result_2.jpg)
- 开始秒杀提示界面
![效果图](/images/result_3.jpg)
- 重复秒杀提示界面
![效果图](/images/result_4.jpg)
- 秒杀秒杀成功提示界面
![效果图](/images/result_5.jpg)
---
## 项目的运行
### 下载
### 导入到IDE
这里因为是使用`IDEA`创建的项目,所以使用`IDEA`直接打开是很方便的,提前是你要配置好`maven`的相关配置,以及项目`JDK`版本,
`JDK`版本必须在`1.8`以上,因为在项目中使用了`Java8`的`LocalDateTime`以及`LocalDate`,所以低于这个版本编译会失败的
- IDEA
直接在主界面选择`Open`,然后找到项目所在路径,点击`pom.xml`打开就可以了
- Eclipse
这个项目是基于`IDEA`创建,我这里把项目转成了`Eclipse`的项目,如果你使用Eclipse的话也可以直接导入,只是步骤更繁琐一点,[Eclipse导入步骤](/note/EclipseImport.md)
## 项目编码
项目总结可能比较的长,**密集恐惧症**者请按小节进行阅读
- [(一)Java高并发秒杀API之业务分析与DAO层](/note/note1.md)
- [(二)Java高并发秒杀API之Service层](/note/note2.md)
- [(三)Java高并发秒杀API之web层](/note/note3.md)
- [(四)Java高并发秒杀API之高并发优化](/note/note4.md)
这里按照上面几个流程走下去,你要有基本的Maven认识以及Java语法的一些概念,要不然可能不太理解
### (一)Java高并发秒杀APi之业务分析与DAO层代码编写
#### 构建项目的基本骨架
* 首先我们要搭建出一个符合Maven约定的目录来,这里大致有两种方式,第一种:
1. 第一种使用命令行手动构建一个maven结构的目录,当然我基本不会这样构建
```
mvn archetype:generate -DgroupId=com.suny.seckill -DartifactId=seckill -Dpackage=com.suny.seckill -Dversion=1.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-webapp
```
这里要注意的是使用`archetype:generate`进行创建,在Maven老版本中是使用`archetype:create`,现在这种方法已经被弃用了,所以使用命令行创建的话注意了,稍微解释下这段语句的意思,就是构建一个一个`maven-archetype-webapp`骨架的Webapp项目,然后`groupId`为`com.suny.seckill `,`artifactId`为`seckill`,这里是Maven相关知识,可以按照自己的情况进行修改
2.第二种直接在IDE中进行创建,这里以IDEA为例
+ 点击左上角`File>New>Project>Maven`
+ 然后在里面勾选`Create from archetype`,然后再往下拉找到`org.apache.cocoon:cocoon-22-archetype-webapp`,选中它,注意要先勾选那个选项,否则选择不了,然后点击`Next`继续
![创建Maven项目](images/001.png)
+然后就填写你的Maven的那几个重要的坐标了,自己看着填吧
![填写Maven坐标](images/002.png)
+再就配置你的Maven的相关信息,默认应该是配置好的
![填写Maven在你本机的位置](images/003.png)
+之后就是点`Finsh`,到此不出意外的话就应该创建成功了
#### 构建pom文件
项目基本的骨架我们就创建出来了,接下来我们要添加一些基本的JAR包的依赖,也就是在`pom.xml`中添加各种开源组件的三坐标了
```xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.suny.seckill</groupId>
<artifactId>seckill</artifactId>
<version>1.0-SNAPSHOT</version>
<name>seckill Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<!--junit测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--配置日志相关,日志门面使用slf4j,日志的具体实现由logback实现-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.6.1</version>
</dependency>
<!--数据库相关依赖-->
<!--首先导入连接Mysql数据连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<!--导入数据库连接池-->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!--导入mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!--导入Servlet web相关的依赖-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--spring默认的json转换-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!--导入spring相关依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</arti
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于SSM+mysql框架的高并发和商品秒杀项目完整源码+说明.zip (115个子文件)
.classpath 4KB
bootstrap.css 134KB
bootstrap.min.css 111KB
bootstrap-theme.css 21KB
bootstrap-theme.min.css 19KB
seckill.eml 3KB
glyphicons-halflings-regular.eot 20KB
.gitignore 154B
seckill.iml 1KB
SeckillServiceImpl.java 8KB
SeckillController.java 5KB
SeckillServiceImplTest.java 3KB
Exposer.java 2KB
Seckill.java 2KB
RedisDao.java 2KB
SuccessKilled.java 2KB
SeckillExecution.java 2KB
SeckillService.java 1KB
SeckillMapperTest.java 1KB
SeckillMapper.java 1KB
RedisDaoTest.java 1KB
SuccessKilledMapperTest.java 1KB
SeckillResult.java 1KB
SuccessKilledMapper.java 869B
SeckillStatEnum.java 845B
SeckillCloseException.java 403B
RepeatKillException.java 385B
SeckillException.java 342B
eclipse26.jpg 416KB
eclipse12.jpg 300KB
eclipse7.jpg 270KB
eclipse27.jpg 200KB
eclipse17.jpg 199KB
eclipse18.jpg 187KB
eclipse20.jpg 177KB
eclipse28.jpg 165KB
eclipse25.jpg 165KB
eclipse29.jpg 163KB
eclipse22.jpg 160KB
eclipse8.jpg 157KB
eclipse30.jpg 156KB
eclipse4.jpg 153KB
eclipse6.jpg 152KB
eclipse23.jpg 145KB
eclipse19.jpg 141KB
eclipse15.jpg 134KB
eclipse14.jpg 127KB
eclipse13.jpg 123KB
eclipse33.jpg 123KB
eclipse9.jpg 122KB
eclipse24.jpg 114KB
eclipse5.jpg 110KB
eclipse2.jpg 109KB
eclipse21.jpg 100KB
eclipse16.jpg 75KB
result_1.jpg 62KB
eclipse11.jpg 62KB
eclipse1.jpg 60KB
eclipse31.jpg 59KB
resources.jpg 49KB
eclipse32.jpg 47KB
eclipse10.jpg 29KB
eclipse3.jpg 28KB
application-service.jpg 28KB
result_2.jpg 25KB
result_4.jpg 22KB
result_3.jpg 21KB
result_5.jpg 20KB
jquery.js 95KB
bootstrap.js 66KB
bootstrap.min.js 34KB
seckill.js 9KB
jquery.countdown.min.js 5KB
jquery.cookie.min.js 1KB
npm.js 496B
detail.jsp 3KB
list.jsp 2KB
head.jsp 532B
tag.jsp 358B
index.jsp 44B
bootstrap.css.map 358KB
bootstrap-theme.css.map 41KB
README.md 94KB
note3.md 30KB
note1.md 27KB
note2.md 22KB
note4.md 13KB
EclipseImport.md 5KB
share.md 2KB
sqlCompare.png 593KB
001.png 180KB
sqlError.png 64KB
mysqlVersion.png 64KB
003.png 59KB
002.png 27KB
004.png 15KB
.project 330B
log4j.properties 501B
jdbc.properties 165B
seckill.sql 2KB
共 115 条
- 1
- 2
资源评论
龙年行大运
- 粉丝: 1176
- 资源: 3825
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功