From 0f4c749b244e42ef41d549445f0e01b384cc5764 Mon Sep 17 00:00:00 2001 From: Lewis Liu <1019175915@qq.com> Date: Sat, 7 Oct 2017 23:24:06 +0800 Subject: [PATCH] update some syntax errors --- README.md | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 84b72c7..8830af5 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -#SSM实战项目——Java高并发秒杀API +# SSM实战项目——Java高并发秒杀API -##本文包括了项目的完整流程+开发过程中遇到的各种坑的总结+学习笔记和问题扩展 +## 本文包括了项目的完整流程+开发过程中遇到的各种坑的总结+学习笔记和问题扩展 --- -##项目介绍 +## 项目介绍 >何为秒杀? @@ -34,7 +34,7 @@ * [Java高并发秒杀API之Web层](http://www.imooc.com/learn/630) * [Java高并发秒杀API之高并发优化](http://www.imooc.com/learn/632) -##相关技术介绍 +## 相关技术介绍 >MySQL @@ -70,7 +70,7 @@ * 高并发点和高并发分析 * 优化思路并实现 -##开发环境 +## 开发环境 * **操作系统**:Windows 8 * **IDE工具**:Eclipse @@ -80,7 +80,7 @@ * **构建工具**:Maven * **框架**:SSM -##项目总结 +## 项目总结 >本文根据慕课网的视频教学进行了相应的学习总结,全文较长,分为四节,附带CSDN传送门 @@ -90,22 +90,22 @@ * [**Java高并发秒杀API(四)之高并发优化**](http://blog.csdn.net/lewky_liu/article/details/78166080) >项目源码 -##TODO +## TODO * **[源码下载]()** * **[GitHub地址]()** --- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>--- -#[Java高并发秒杀API(一)之业务分析与DAO层](http://blog.csdn.net/lewky_liu/article/details/78159983) +# [Java高并发秒杀API(一)之业务分析与DAO层](http://blog.csdn.net/lewky_liu/article/details/78159983) --- >本SSM实战项目使用了Maven进行依赖管理,如果有不清楚Maven是什么的可以参考[这篇文章](http://blog.csdn.net/lewky_liu/article/details/78138381) -##1. 创建Maven项目和依赖 +## 1. 创建Maven项目和依赖 -###1.1 创建项目前需要先安装Maven,并设置好环境变量 +### 1.1 创建项目前需要先安装Maven,并设置好环境变量 * [Maven下载](http://download.csdn.net/download/lewky_liu/10000144) * 设置环境变量 @@ -113,7 +113,7 @@ * 将`%MAVEN_HOME%\bin`添加到`Path`变量下 * 运行CMD,输入`mvn -v`后可以看到Maven的版本信息等则表示安装成功 -###1.2 创建Maven项目有两种方式,如下 +### 1.2 创建Maven项目有两种方式,如下 **第一种创建方式:使用命令行手动创建** @@ -140,7 +140,7 @@ >如果是第一次使用Eclipse的Maven插件来创建Maven项目的可能会遇到一些问题,可以参考[该博文](http://blog.csdn.net/lewky_liu/article/details/78138381) -###1.3 修改pom.xml文件 +### 1.3 修改pom.xml文件 当创建完Maven项目后会在根目录下有一个pom.xml文件,Maven项目通过pom.xml进行项目依赖的管理,如果没有该xml文件,Eclipse不会将该项目当作一个Maven项目 @@ -321,9 +321,9 @@ >有想要了解Maven的依赖范围与传递性依赖的请参考[该博文](http://blog.csdn.net/lewky_liu/article/details/78145211) -##2. 秒杀业务分析 +## 2. 秒杀业务分析 -###2.1 业务分析 +### 2.1 业务分析 >秒杀业务的核心是对库存的处理,其业务流程如下图 @@ -359,7 +359,7 @@ * **不落地数据**:一般指存储在内存或者是网络传输里的数据,这些数据是瞬时,使用完毕就会消失,例如:我们在浏览器发送给服务器的请求;从数据库读取出来的一直到页面展示前的数据等等。 * “不落地”传输能够满足用户在性能上的要求。 -###2.2 使用MySQL实现秒杀的难点分析 +### 2.2 使用MySQL实现秒杀的难点分析 >难点问题:如何高效地处理竞争? @@ -389,9 +389,9 @@ start transaction(开启事务)→ update库存数量 → insert购买明细 现实中有的用户回通过浏览器插件提前知道秒杀接口,填入参数和地址来实现自动秒杀,这对于其他用户来说是不公平的,我们也不希望看到这种情况 -##3. DAO层设计 +## 3. DAO层设计 -###3.1 创建数据库 +### 3.1 创建数据库 源码里有个sql文件夹,可以给出了sql语句;也可以选择自己手写。数据库一共就两个表:秒杀库存表、秒杀成功明细表。 @@ -445,7 +445,7 @@ start transaction(开启事务)→ update库存数量 → insert购买明细 为了解决这个问题,将create_time放到start_time和end_time的前面,还有的mysql版本需要将三个时间戳都设置默认值。 -###3.2 创建数据表对应的实体类 +### 3.2 创建数据表对应的实体类 >在`src/main/java`包下创建com.lewis.entity包,接着建立`Seckill`实体类 @@ -580,7 +580,7 @@ start transaction(开启事务)→ update库存数量 → insert购买明细 } -###3.3 创建实体类对应的DAO层接口(也就是Mapper接口,DAO针对的是具体实体来操作的“实体的增删改查”) +### 3.3 创建实体类对应的DAO层接口(也就是Mapper接口,DAO针对的是具体实体来操作的“实体的增删改查”) >在`src/main/java`下建立`com.lewis.dao`包,在包下建立`SeckillDao`接口 @@ -639,7 +639,7 @@ start transaction(开启事务)→ update库存数量 → insert购买明细 从上面的代码可以发现,当方法的形参在两个及两个以上时,需要在参数前加上@Param,如果不加上该注解会在之后的测试运行时报错。这是Sun提供的默认编译器(javac)在编译后的Class文件中会丢失参数的实际名称,方法中的形参会变成无意义的arg0、arg1等,在只有一个参数时就无所谓,但当参数在两个和两个以上时,传入方法的参数就会找不到对应的形参。因为Java形参的问题,所以在多个基本类型参数时需要用@Param注解区分开来。 -###3.4 基于MyBatis实现DAO接口 +### 3.4 基于MyBatis实现DAO接口 >MyBatis怎么用?SQL写在哪里? @@ -797,7 +797,7 @@ CDATA指的是不应由 XML 解析器进行解析的文本数据,在XML元素 所以在这里我们需要使用``来告诉XML`<=`不是XML的语言。 -###3.5 整合Spring和MyBatis +### 3.5 整合Spring和MyBatis 在`resources`目录下创建一个新的目录`spring`(存放所有Spring相关的配置) @@ -881,7 +881,7 @@ CDATA指的是不应由 XML 解析器进行解析的文本数据,在XML元素 关于Spring的XML配置文件的头部文件的说明可以参考[这篇文章](http://blog.csdn.net/lewky_liu/article/details/78157747) -###3.6 DAO层单元测试 +### 3.6 DAO层单元测试 有不知道Eclipse如何直接进行生成快速的测试单元的,可以看看[这篇文章](http://blog.csdn.net/jj_nan/article/details/64134781)