Skip to content

Commit 385f873

Browse files
committed
Site updated: 2017-01-05 23:09:23
1 parent b635523 commit 385f873

13 files changed

Lines changed: 1180 additions & 24 deletions

File tree

2016/12/30/hello-world/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@ <h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerl
463463

464464
<div class="site-state-item site-state-posts">
465465
<a href="/archives">
466-
<span class="site-state-item-count">2</span>
466+
<span class="site-state-item-count">3</span>
467467
<span class="site-state-item-name">日志</span>
468468
</a>
469469
</div>

2017/01/01/Java笔记之高并发秒杀API-一/index.html

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@
9898
<meta property="og:image" content="http://upload-images.jianshu.io/upload_images/4221394-adb92cad87044855.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240">
9999
<meta property="og:image" content="http://upload-images.jianshu.io/upload_images/4221394-664b9249aee95b03.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240">
100100
<meta property="og:image" content="http://upload-images.jianshu.io/upload_images/4221394-72597434435d3bee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240">
101-
<meta property="og:updated_time" content="2017-01-04T07:32:26.504Z">
101+
<meta property="og:updated_time" content="2017-01-04T13:24:03.665Z">
102102
<meta name="twitter:card" content="summary">
103103
<meta name="twitter:title" content="Java笔记之高并发秒杀API(一)">
104104
<meta name="twitter:description" content="本次系列的Java笔记是通过学习慕课网上的高并发秒杀API的视频而总结的,只是想通过写博客的过程能让自己梳理学习的过程,顺便时刻提醒自己。  本次秒杀API的项目的整体框架是Spring+Spring MVC+Mybatis,数据库为MySQL。">
@@ -358,7 +358,7 @@ <h1 class="post-title" itemprop="name headline">
358358

359359
<p>  本次系列的Java笔记是通过学习慕课网上的高并发秒杀API的视频而总结的,只是想通过写博客的过程能让自己梳理学习的过程,顺便时刻提醒自己。<br>  本次秒杀API的项目的整体框架是Spring+Spring MVC+Mybatis,数据库为MySQL。</p>
360360
<a id="more"></a>
361-
<h2 id="创建项目"><a href="#创建项目" class="headerlink" title="创建项目"></a><strong>创建项目</strong></h2><p>使用maven构建项目,因为使用命令行下载太慢,直接在Eclipse上使用maven来创建项目</p>
361+
<h2 id="创建项目"><a href="#创建项目" class="headerlink" title="创建项目"></a>创建项目</h2><p>使用maven构建项目,因为使用命令行下载太慢,直接在Eclipse上使用maven来创建项目</p>
362362
<p><img src="http://upload-images.jianshu.io/upload_images/4221394-29eb8eb4253e2fa1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="maven创建项目"><br><img src="http://upload-images.jianshu.io/upload_images/4221394-e9a282a9855be6c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="maven创建项目"></p>
363363
<p>如图:</p>
364364
<ul>
@@ -370,15 +370,14 @@ <h2 id="创建项目"><a href="#创建项目" class="headerlink" title="创建
370370
<pre><code>默认的Servlet版本是2.3,但是该版本下JSP的EL表达式是不工作的,这里需要更改版本
371371
</code></pre><p>打开apache-tomcat-8.5.9\webapps\examples\WEB-INF\web.xml, 这是Tomcat的示例配置文件,将web-app标签内的内容覆盖到项目中的web.xml的web-app标签<br><img src="http://upload-images.jianshu.io/upload_images/4221394-7489e2a8abd55ee5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="Tomcat示例pom.xml"></p>
372372
<pre><code>Tomcat8.5.9给的示例文件显示使用的Servlet版本是3.1
373-
</code></pre><h2 id="依赖配置"><a href="#依赖配置" class="headerlink" title="依赖配置"></a><strong>依赖配置</strong></h2><p>首先是补全文件,在src/main下添加两个文件夹java、test</p>
373+
</code></pre><h2 id="依赖配置"><a href="#依赖配置" class="headerlink" title="依赖配置"></a>依赖配置</h2><p>首先是补全文件,在src/main下添加两个文件夹java、test</p>
374374
<ul>
375375
<li>java: 存放java的源文件</li>
376376
<li>test: 用于单元测试 </li>
377377
</ul>
378378
<p>也可以直接在Eclipse中右键项目名,点击Build Path-&gt;Order and Export<br><img src="http://upload-images.jianshu.io/upload_images/4221394-a3425be83f5cd4eb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="Build Path"></p>
379379
<p>把需要的都选上,然后点击Apply,引入相关文件</p>
380-
<p>接着打开pom.xml,配置依赖<br><img src="http://upload-images.jianshu.io/upload_images/4221394-adb92cad87044855.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="junit"><br>首先的改动是junit的版本,Eclipse自动生成的pom.xml的junit版本是3.8.1,这里改为4.11<br>因为junit3.0的版本是默认使用编程的方式运行的, 而4.0的版本是默认通过注解的方式来运行junit的 </p>
381-
<p>接着就是补全项目的依赖</p>
380+
<p>接着打开pom.xml,配置依赖<br><img src="http://upload-images.jianshu.io/upload_images/4221394-adb92cad87044855.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="junit"><br>首先的改动是junit的版本,Eclipse自动生成的pom.xml的junit版本是3.8.1,这里改为4.11<br> 因为junit3.0的版本是默认使用编程的方式运行的, 而4.0的版本是默认通过注解的方式来运行junit的<br>接着就是补全项目的依赖</p>
382381
<h3 id="日志相关依赖"><a href="#日志相关依赖" class="headerlink" title="日志相关依赖"></a>日志相关依赖</h3><p>本次项目采用slf4j+logback的组合</p>
383382
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div></pre></td><td class="code"><pre><div class="line">&lt;dependency&gt;</div><div class="line"> &lt;groupId&gt;org.slf4j&lt;/groupId&gt;</div><div class="line"> &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;</div><div class="line"> &lt;version&gt;1.7.12&lt;/version&gt;</div><div class="line">&lt;/dependency&gt;</div><div class="line"></div><div class="line">&lt;dependency&gt;</div><div class="line"> &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt;</div><div class="line"> &lt;artifactId&gt;logback-core&lt;/artifactId&gt;</div><div class="line"> &lt;version&gt;1.1.1&lt;/version&gt;</div><div class="line">&lt;/dependency&gt;</div><div class="line"></div><div class="line">&lt;!-- 实现slf4j接口并整合 --&gt;</div><div class="line">&lt;dependency&gt;</div><div class="line"> &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt;</div><div class="line"> &lt;artifactId&gt;logback-classic&lt;/artifactId&gt;</div><div class="line"> &lt;version&gt;1.1.1&lt;/version&gt;</div><div class="line">&lt;/dependency&gt;</div></pre></td></tr></table></figure>
384383
<p>logback的依赖有两个: logback-core、logback-classic</p>
@@ -402,8 +401,8 @@ <h4 id="Spring-Dao层的依赖"><a href="#Spring-Dao层的依赖" class="headerl
402401
<h4 id="Spring-WEB相关的依赖"><a href="#Spring-WEB相关的依赖" class="headerlink" title="Spring WEB相关的依赖"></a>Spring WEB相关的依赖</h4><p>包括与Spring MVC相关的依赖</p>
403402
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div></pre></td><td class="code"><pre><div class="line">&lt;!-- Spring WEB相关的依赖 --&gt;</div><div class="line">&lt;dependency&gt;</div><div class="line"> &lt;groupId&gt;org.springframework&lt;/groupId&gt;</div><div class="line"> &lt;artifactId&gt;spring-web&lt;/artifactId&gt;</div><div class="line"> &lt;version&gt;4.1.7.RELEASE&lt;/version&gt;</div><div class="line">&lt;/dependency&gt;</div><div class="line"></div><div class="line">&lt;dependency&gt;</div><div class="line"> &lt;groupId&gt;org.springframework&lt;/groupId&gt;</div><div class="line"> &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt;</div><div class="line"> &lt;version&gt;4.1.7.RELEASE&lt;/version&gt;</div><div class="line">&lt;/dependency&gt;</div></pre></td></tr></table></figure>
404403
<h4 id="Spring-test相关的依赖"><a href="#Spring-test相关的依赖" class="headerlink" title="Spring test相关的依赖"></a>Spring test相关的依赖</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div></pre></td><td class="code"><pre><div class="line">&lt;!-- Spring WEB相关的依赖 --&gt;</div><div class="line">&lt;dependency&gt;</div><div class="line"> &lt;groupId&gt;org.springframework&lt;/groupId&gt;</div><div class="line"> &lt;artifactId&gt;spring-web&lt;/artifactId&gt;</div><div class="line"> &lt;version&gt;4.1.7.RELEASE&lt;/version&gt;</div><div class="line">&lt;/dependency&gt;</div><div class="line"></div><div class="line">&lt;dependency&gt;</div><div class="line"> &lt;groupId&gt;org.springframework&lt;/groupId&gt;</div><div class="line"> &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt;</div><div class="line"> &lt;version&gt;4.1.7.RELEASE&lt;/version&gt;</div><div class="line">&lt;/dependency&gt;</div></pre></td></tr></table></figure>
405-
<p>虽然以上有些依赖版本相对有些老旧,但毕竟是练习,在不是特别熟悉这些框架和服务时,尽量按照视频中的版本来。在实际工作中应该前期就把要采用的服务的版本特性了解清楚。</p>
406-
<h2 id="业务分析"><a href="#业务分析" class="headerlink" title="业务分析"></a><strong>业务分析</strong></h2><p><img src="http://upload-images.jianshu.io/upload_images/4221394-664b9249aee95b03.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="业务分析"></p>
404+
<p>虽然以上有些依赖版本相对有些老旧,但毕竟是练习,在不是特别熟悉这些框架和服务时,尽量按照视频中的版本来,不然等到测试时,会有各种玄学的问题,比较麻烦。在实际工作中应该前期就把要采用的服务的版本特性了解清楚。</p>
405+
<h2 id="业务分析"><a href="#业务分析" class="headerlink" title="业务分析"></a>业务分析</h2><p><img src="http://upload-images.jianshu.io/upload_images/4221394-664b9249aee95b03.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="业务分析"></p>
407406
<pre><code>秒杀业务的核心就是对库存的处理,而难点主要是竞争
408407
</code></pre><p>当n个用户同时竞争一个秒杀商品时,为了保证数据准确,没有出现数据的脏读、幻读等;保证商家没有出现超卖或者少卖的现象,就必然会用到事务+行级锁</p>
409408
<p><img src="http://upload-images.jianshu.io/upload_images/4221394-72597434435d3bee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="用户针对库存业务分析"></p>
@@ -450,6 +449,10 @@ <h2 id="业务分析"><a href="#业务分析" class="headerlink" title="业务
450449

451450
<div class="post-nav-prev post-nav-item">
452451

452+
<a href="/2017/01/05/Java笔记之高并发秒杀API-二/" rel="prev" title="Java笔记之高并发秒杀API(二)">
453+
Java笔记之高并发秒杀API(二) <i class="fa fa-chevron-right"></i>
454+
</a>
455+
453456
</div>
454457
</div>
455458

@@ -518,7 +521,7 @@ <h2 id="业务分析"><a href="#业务分析" class="headerlink" title="业务
518521

519522
<div class="site-state-item site-state-posts">
520523
<a href="/archives">
521-
<span class="site-state-item-count">2</span>
524+
<span class="site-state-item-count">3</span>
522525
<span class="site-state-item-name">日志</span>
523526
</a>
524527
</div>

0 commit comments

Comments
 (0)