# 基于 Java 的简单秒杀系统
## 前言
使用码云做图床的时候一定要一张一张的传图啊,不然一张图片直接影分身
首先感谢大佬的无私奉献,愿意将自己的经验和技术分享给我们。贴上大佬的教程指北 [教程页](https://www.imooc.com/u/2145618/courses?sort=publish)
经过了长达半个月的跟班学习,跟着老师做还用了这么长的时间,原因无非是自己对于知识的掌握不牢靠,知识面的狭窄。同时,在不断的学习和修改自己编写中出现的 bug 之后,对于项目的开发和对于代码的理解都提高了一个档次!至此,秒杀系统的开发告一段落,那么是时候对其进行分析和总结了!
## 一、工欲善其事,必先利其器
该项目使用到的工具包括但不限于 IDEA 编辑器,Maven 项目管理器,Spring + MVC + BootStrap 框架,语言主要使用 Java 语言和 JS,日志使用的是 slf4j 的最新版 logback,数据库连接池用的 c3p0,单元测试用的 JUnit 4。
### 1.1 IDEA 的配置
IDEA 是对 Java 开发非常友好的编辑器,利用它做开发能达到事半功倍的效果。
IDEA 本体的安装及配置网上教程很多,这里不做赘述。那么我们需要在 IDEA 中自行安装及配置的就只有 Maven 了(其实也不用, IDEA 已经将 Maven 做了整合,但是我用的时候出现了一些问题,故采用自己安装配置的 Maven ,同时自己安装配置也能保证使用的是最新的版本)。Go on >>>
### 1.2 Maven 的安装及配置
官网下载最新的压缩包解压即可,配置环境变量,新建一个变量
![](https://www.writebug.com/myres/static/uploads/2021/11/1/f595322a5ca374b1daa3987858539e74.writebug)
再在 path 目录下添加 `%MAVEN_HOME%\bin`
[![](https://www.writebug.com/myres/static/uploads/2021/11/1/076cad9de7c7bb0a3a31acdd4e8d8bda.writebug)](https://gitee.com/modeus/blog-images/raw/master/img/20210228153720.png)
打开 powershell 输入 `mvn -version` 出现
![](https://www.writebug.com/myres/static/uploads/2021/11/1/a714e099990d57750e261889ed5b4a51.writebug)
打开解压后的目录文件下的 conf 文件夹,修改其中的 settings.xml 配置文件
更改默认的本地仓库地址(目录自己新建)
![](https://www.writebug.com/myres/static/uploads/2021/11/1/20a93c1441138b194b73e0c6bd983844.writebug)
更换镜像网站(提升下载速度)
```
<!-- 注意添加到 mirrors 标签域内 -->
<!--设置阿里云镜像-->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
```
声明 JDK 版本
```
<!-- 注意添加到 profiles 标签域内 -->
<!--java版本-->
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
```
保存配置,在 powershell 中输入 maven 仓库更新指令 `mvn help:system`,出现
![](https://www.writebug.com/myres/static/uploads/2021/11/1/b2c2d832cff83abab0f58ac5ac522165.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/11/1/f4a067231ff8e123a31c9195fea612ea.writebug)
注意:
*这里下载的并不是所有将来可能会用到的 JAR ,以后若使用到未下载的 JAR 包,IDEA 会提示更新仓库(下面有讲到)*
有了 Maven 这个项目管理神器,我们可以将精力放在对于程序的开发上面来,不需要为各种框架的依赖而烦恼。下面讲如何使用 IDEA 和 Maven 进行我们的开发工作。
### 1.3 使用 IDEA 创建自己的项目并利用 Maven 引入需要的依赖
新建一个项目,取名为 seckill ,并在其中添加 maven 框架依赖,选择使用原型创建
使用自行解压的版本,不使用与 IDEA 绑定的版本
![](https://www.writebug.com/myres/static/uploads/2021/11/1/581afcc057425bc3a73adbd7ff7c32d0.writebug)
IDEA 中环境自动配置的 Servlet2.3 JSP 的 el 表达式是不工作的,手动更换版本,把 WEB-INF 下的 web.xml 更改为
```
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
</web-app>
```
手动向 maven 的配置文件中添加相应的依赖,IDEA 添加时可能因为没有相应的 JAR 包而报错标红,但是并不影响,在全部添加完毕后点击 maven 的同步按钮就会自动的将需要的 JAR 包添加到本地目录里面。(后面需要用到的依赖也一并在此添加了)
```
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- 补全项目依赖 -->
<!-- 1、日志 java 日志:slf4j,log4j,logback,common-logging
slf4j 是规范/接口
日志实现:log4j,logback,common-logging
使用:slf4j + logback
-->
<!-- 添加 slf4j 依赖,不然 logback 不能用 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<!-- 添加 logback-core 核心依赖 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 添加 logback-classic 依赖,实现并整合 slf4j 接口 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 2、添加数据库相关依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
<scope>runtime</scope>
</dependency>
<!-- 优化链接反馈 -->
<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
<!-- <dependency>-->
<!-- <groupId>c3p0</groupId>-->
<!-- <artifactId>c3p0</artifactId>-->
<!-- <version>0.9.1.2</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
<!-- 3、DAO层:MyBatis 依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!-- MyBatis 自身实现的 Spring 依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<!-- Servlet Web 相关依赖 -->
<!-- 引入相关 jsp 标签 -->
<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>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-d
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该项目使用到的工具包括但不限于 IDEA 编辑器,Maven 项目管理器,Spring + MVC + BootStrap 框架,语言主要使用 Java 语言和 JS,日志使用的是 slf4j 的最新版 logback,数据库连接池用的 c3p0,单元测试用的 JUnit 4。
资源推荐
资源详情
资源评论
收起资源包目录
100013068-基于 Java+MySQL 实现的简单秒杀系统.zip (50个子文件)
seckil
pom.xml 8KB
SecKill.iml 80B
src
test
java
org
seckill
dao
cache
RedisDaoTest.java 1KB
SuccessKilledDaoTest.java 1KB
SecKillDaoTest.java 941B
service
impl
SeckillServiceImplTest.java 3KB
main
sql
schema.sql 2KB
seckill.sql 2KB
resources
mapper
SuccessKilledDao.xml 1KB
SecKillDao.xml 1KB
logback.xml 362B
spring
spring-web.xml 2KB
spring-dao.xml 3KB
spring-service.xml 1KB
jdbc.properties 401B
mybatis-config.xml 706B
seckillDao.properties 45B
java
org
seckill
web
SeckillController.java 4KB
dao
SuccessKilledDao.java 639B
cache
RedisDao.java 2KB
SecKillDao.java 971B
service
SeckillService.java 2KB
impl
SeckillServiceImpl.java 7KB
enums
SeckillStatEnum.java 980B
entity
SuccessKilled.java 1KB
SecKill.java 1KB
exception
RepeatKillException.java 328B
SeckillCloseException.java 312B
SeckillException.java 297B
dto
SeckillResult.java 840B
Exposer.java 2KB
SeckillExecution.java 2KB
webapp
WEB-INF
web.xml 1KB
jsp
list.jsp 2KB
detail.jsp 3KB
common
tag.jsp 130B
head.jsp 1KB
index.jsp 51B
resources
script
seckill.js 6KB
LICENSE 1KB
.idea
jarRepositories.xml 1KB
sqldialects.xml 206B
misc.xml 640B
dataSources.xml 627B
compiler.xml 528B
junitgenerator-prj-settings.xml 195B
.gitignore 182B
encodings.xml 261B
.gitignore 32B
README.md 98KB
共 50 条
- 1
资源评论
神仙别闹
- 粉丝: 2687
- 资源: 7642
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功