您可以提高您站点的访问速度,那么就需要用到cache(缓存),通常可以我们使用cache来处理经常检索的结果或不经常改变的数据结果。

你将学习:

l  如何使用缓存来提高网站的响应速度。

本章介绍的功能:

l  WebCache helper

 

缓存来提高网站的响应

每当人们请求您站点中的页面时,Web服务器都会做一些工作,以便执行请求。对于其中一些包括有服务器端执行代码的页面,Web服务器可能会执行很长时间来完成任务。比如从数据库中检索数据。这些任务获取在较少数量的的请求时并不需要太长的时间,但是如果网上有了大量的流量,所有用户都进行了独立请求的时候,会导致Web服务器增加很多的工作,从而使执行速度变的缓慢。这最终会影响到网站的性能。

 

在这种情况下,改善您网站性能的方法之一便是缓存数据。如果您的网站上有在请求时响应的是相同数,且数据并不需要针对个人进行改变,另外在时间上也并不敏感。那么我们可以将数据缓存,在用户每次请求时并不在Web服务器上重新计算,而是在第一次访问时就将数据放到缓存中,在下一次请求时,只获取缓存中的数据。

 

在一般情况下,您缓存的信息并不经常改变。当你把信息放到缓存,它将存储在Web服务器上的内存中。你可以指定它应该被缓存多久,从几秒钟到几天。当缓存期限到期,该信息自动从缓存中删除。

 

注意    缓存中的项目并没有过期,但可能会因为其他原因可能会被删除。例如,Web服务器可能暂时低位运行内存,它回收内存的方法之一便是移出缓存项。正如你看到的,即使你放入缓存信息,你必须检查,以确保它在您使用时仍然存在。

 

想象您的网站有一个页面,显示当前的温度和天气预报。为了得到这种类型的信息,您可能会发送一个请求到外部服务。因为这个信息并不需要有太大的改变(例如,在两个小时内)因为和外部请求服务需要时间和带宽,所以这是一个很好的被缓存项目。

 

ASP.NET包括WebCache helper,使得您很容易地将缓存功能添加到网站,并添加到缓存中的数据。在此过程中,您将创建一个页面用来缓存的当前的时间。当然这不是一个真实的例子,因为当前的时间是不经常改变,而且不需要复杂的计算。然而,这是一个很好的方式来说明缓存在工作。

1.         添加一个新页面网站名为WebCache.cshtml

2.         在页面中添加以下代码和标记:

@{
   
var cacheItemKey = "Time";
   
var cacheHit = true;
   
var time = WebCache.Get(cacheItemKey);

   
if (time == null) {
        cacheHit
= false;
   
}

   
if (cacheHit == false) {
        time
= @DateTime.Now;
       
WebCache.Set(cacheItemKey, time, 1, false);
   
}
}
DOCTYPE html>


   
</span><span style="color:#660066">WebCache</span><span> </span><span style="color:#660066">Helper</span><span> </span><span style="font-family:宋体;mso-ascii-font-family: Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin; color:#660066">例子</span><span style="color:#666600"><</span><span style="color:#008800">/title><br> </</span><span>head</span><span style="color:#666600">></span><span><br> </span><span style="color:#008800"><body></span><span><br>     </span><span style="color:#008800"><div></span><span><br>         </span><span style="color:#006666">@if</span><span> </span><span style="color:#666600">(</span><span>cacheHit</span><span style="color:#666600">)</span><span> </span><span style="color:#666600">{</span><span><br>             </span><span style="color:#666600">@:</span><span style="color:#660066">Found</span><span> the time data </span><span style="color:#000088">in</span><span> the cache</span><span style="color:#666600">.</span><span><br>         </span><span style="color:#666600">}</span><span> </span><span style="color:#000088">else</span><span> </span><span style="color:#666600">{</span><span><br>             </span><span style="color:#666600">@:</span><span style="color:#660066">Did</span><span> </span><span style="color:#000088">not</span><span> find the time data </span><span style="color:#000088">in</span><span> the cache</span><span style="color:#666600">.</span><span><br>         </span><span style="color:#666600">}</span><span><br>     </span><span style="color:#666600"><</span><span style="color:#008800">/div><br>     <div><br>         </span><span style="font-family: 宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family: 宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;color:#008800">页面上的时间被组成存为:</span><span style="color:#008800"> @time.<br>     </</span><span>div</span><span style="color:#666600">></span><span><br> </span><span style="color:#666600"><</span><span style="color:#008800">/body><br> </</span><span>html</span><span style="color:#666600">> </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:0cm;mso-char-indent-count: 0"><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:0pt; mso-bidi-font-weight:bold">   </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:0cm;mso-char-indent-count: 0"><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: "Segoe UI";mso-bidi-font-family:"Segoe UI";border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm">在</span><span style="font-size:10.0pt;font-family:Consolas;mso-fareast-font-family:宋体; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">cacheItemKey</span><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: "Segoe UI";mso-bidi-font-family:"Segoe UI";border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm">代码示例中,使用</span><span style="font-size:10.0pt">time</span><span style="font-size:10.0pt; font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: Calibri;mso-hansi-theme-font:minor-latin">定义了一个缓存项,</span><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: "Segoe UI";mso-bidi-font-family:"Segoe UI";border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm">当您缓存数据时,需要为缓存定义一个名称,在整个网站中,这个缓存是独立存在的。</span><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm"> </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:0cm;mso-char-indent-count: 0"><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:0pt; mso-bidi-font-weight:bold">   </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:0cm;mso-char-indent-count: 0"><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-hansi-font-family:"Segoe UI";mso-bidi-font-family:"Segoe UI";font-variant: small-caps;mso-font-kerning:0pt;mso-bidi-font-weight:bold">该代码首先读取</span><span style="font-size:10.0pt">time</span><span style="font-size:10.0pt; font-family:宋体;mso-ascii-font-family:"Segoe UI";mso-hansi-font-family:"Segoe UI"; mso-bidi-font-family:"Segoe UI";font-variant:small-caps;mso-font-kerning:0pt; mso-bidi-font-weight:bold">缓存项中的值,如果返回值不为空,说明代码从缓存项目中获取了</span><span style="font-size:10.0pt">time</span><span style="font-size:10.0pt; font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: Calibri;mso-hansi-theme-font:minor-latin">缓存,并保存到变量</span><span>time</span><span style="font-family: 宋体; ">中。</span><span style="font-size:10.0pt;font-family: "Segoe UI","sans-serif";mso-fareast-font-family:宋体;font-variant:small-caps; mso-font-kerning:0pt;mso-bidi-font-weight:bold"> </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:0cm;mso-char-indent-count: 0"><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:0pt; mso-bidi-font-weight:bold">   </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:0cm;mso-char-indent-count: 0"><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: "Segoe UI";mso-bidi-font-family:"Segoe UI";border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm">然而,如果缓存条目不存在(也就是说,它是空的),代码会设置</span><span style="font-size:10.0pt">time</span><span style="font-size:10.0pt; font-family:宋体;mso-ascii-font-family:"Segoe UI";mso-fareast-font-family:宋体; mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:"Segoe UI"; mso-bidi-font-family:"Segoe UI";border:none windowtext 1.0pt;mso-border-alt: none windowtext 0cm;padding:0cm">的值</span><span style="font-size:10.0pt; font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: Calibri;mso-hansi-theme-font:minor-latin">为当前时间</span><span style="font-size: 10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI";mso-fareast-font-family: 宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:"Segoe UI"; mso-bidi-font-family:"Segoe UI";border:none windowtext 1.0pt;mso-border-alt: none windowtext 0cm;padding:0cm">,将它添加到缓存中,并设置一分钟的到期时限。如果页面请求没有在一分钟之内进行,那么缓存中的项目将被丢弃。(默认缓存项到期时间是</span><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">20</span><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: "Segoe UI";mso-bidi-font-family:"Segoe UI";border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm">分钟)。</span><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif";border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm"> </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:0cm;mso-char-indent-count: 0"><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">   </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:0cm;mso-char-indent-count: 0"><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: "Segoe UI";mso-bidi-font-family:"Segoe UI";border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm">此代码说明的问题是您应该总是使用时缓存数据。在您得到的新的缓存之前,总是先检查</span><span style="font-size:10.0pt;font-family:Consolas;mso-fareast-font-family: 宋体;border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding: 0cm">WebCache.Get</span><span style="font-size:10.0pt;font-family:宋体; mso-ascii-font-family:"Segoe UI";mso-fareast-font-family:宋体;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:"Segoe UI";mso-bidi-font-family:"Segoe UI"; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">方法是否返回</span><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">null</span><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: "Segoe UI";mso-bidi-font-family:"Segoe UI";border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm">值。请记住,缓存条目可能因为其他一些原因已过期或可能已被删除,所以从来不能保证任何给定的项目在缓存一直存在。</span><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm"> </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:0cm;mso-char-indent-count: 0"><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:0pt; mso-bidi-font-weight:bold">   </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:-21.0pt; mso-char-indent-count:0;mso-list:l1 level1 lfo2"> <span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:"Segoe UI";font-variant:small-caps;mso-font-kerning: 0pt;mso-bidi-font-weight:bold">3.<span style="font:7.0pt "Times New Roman"">         </span></span> <span style="font-size:10.0pt;font-family:宋体; mso-ascii-font-family:"Segoe UI";mso-fareast-font-family:宋体;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:"Segoe UI";mso-bidi-font-family:"Segoe UI"; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">在浏览器中运行</span><em><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">WebCache.cshtml</span></em><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: "Segoe UI";mso-bidi-font-family:"Segoe UI";border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm">。(请确保页面在选定的工作区中,然后再运行它。)当您第一次请求页面时,时间数据不在缓存中,代码将添加时间值到缓存中。</span><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:0pt; mso-bidi-font-weight:bold"> </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:0cm;mso-char-indent-count: 0"><font face="'Segoe UI', sans-serif" size="2"><span style="font-variant: small-caps;"><br> </span></font></p> <p style="text-align: center; "><a href="http://img.e-com-net.com/image/info3/c8b150a6e7d848b8b2e7cbca5ed9f0c8.jpg" target="_blank"><img alt="利用缓存来提高网站的性能(Caching to Improve the Performance of Your Website )_第1张图片" src="http://img.e-com-net.com/image/info3/c8b150a6e7d848b8b2e7cbca5ed9f0c8.jpg" width="386" height="116" style="border:1px solid black;"></a></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:-21.0pt; mso-char-indent-count:0;mso-list:l1 level1 lfo2"> <span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:"Segoe UI";font-variant:small-caps;mso-font-kerning: 0pt;mso-bidi-font-weight:bold">4.<span style="font:7.0pt "Times New Roman"">         </span></span> <span style="font-size:10.0pt;font-family:宋体; mso-ascii-font-family:"Segoe UI";mso-fareast-font-family:宋体;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:"Segoe UI";mso-bidi-font-family:"Segoe UI"; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">在浏览器中刷新</span><em><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">WebCache.cshtml</span></em><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: "Segoe UI";mso-bidi-font-family:"Segoe UI";border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm">。这一次,时间数据是从缓存中获取的。请注意你最后一次浏览网页以来的时间一直没有改变。</span><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:0pt; mso-bidi-font-weight:bold"> </span></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:0cm;mso-char-indent-count: 0"><font face="'Segoe UI', sans-serif" size="2"><span style="font-variant: small-caps;"><br> </span></font></p> <p style="text-align: center; "><a href="http://img.e-com-net.com/image/info3/fd09a0f7c0f845fa82aad38e702d183a.jpg" target="_blank"><img alt="利用缓存来提高网站的性能(Caching to Improve the Performance of Your Website )_第2张图片" src="http://img.e-com-net.com/image/info3/fd09a0f7c0f845fa82aad38e702d183a.jpg" width="393" height="112" style="border:1px solid black;"></a></p> <p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:-21.0pt; mso-char-indent-count:0;mso-list:l1 level1 lfo2"> <span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:"Segoe UI";font-variant:small-caps;mso-font-kerning: 0pt;mso-bidi-font-weight:bold">5.<span style="font:7.0pt "Times New Roman"">         </span></span> <span style="font-size:10.0pt;font-family:宋体; mso-ascii-font-family:"Segoe UI";mso-fareast-font-family:宋体;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:"Segoe UI";mso-bidi-font-family:"Segoe UI"; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">等待一分钟后缓存被清空,然后刷新页面。再次表明时间数据在缓存中没有找到,更新的时间将被添加到缓存项中。</span><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:0pt; mso-bidi-font-weight:bold"> </span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:0pt; mso-bidi-font-weight:bold">   </span></p> <p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family: "Segoe UI";mso-hansi-font-family:"Segoe UI";mso-bidi-font-family:"Segoe UI"; font-variant:small-caps;mso-font-kerning:0pt">原文:</span></b><b><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:0pt"> </span></b></p> <p class="MsoNormal"><span>http://www.asp.net/web-pages/tutorials/performance-and-traffic/15-caching-to-improve-the-performance-of-your-website </span></p> <p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family: "Segoe UI";mso-hansi-font-family:"Segoe UI";mso-bidi-font-family:"Segoe UI"; font-variant:small-caps;mso-font-kerning:0pt">资源:</span></b><b><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"; mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:0pt"> </span></b></p> <p class="MsoNormal"><span><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: "Segoe UI";mso-bidi-font-family:"Segoe UI";color:#267CB2;border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm"><span>第</span></span><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif";color:#267CB2; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">7</span><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Segoe UI"; mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: "Segoe UI";mso-bidi-font-family:"Segoe UI";color:#267CB2;border:none windowtext 1.0pt; mso-border-alt:none windowtext 0cm;padding:0cm"><span>章</span></span><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif";color:#267CB2; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm"> - </span><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family: "Segoe UI";mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:"Segoe UI";mso-bidi-font-family:"Segoe UI";color:#267CB2; border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm"><span>显示图表中的数据</span></span></span><span style="font-size: 10.0pt;font-family:"Segoe UI","sans-serif";mso-fareast-font-family:宋体; font-variant:small-caps;mso-font-kerning:0pt;mso-bidi-font-weight:bold"> </span></p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1205411148845916160"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(开发工具,WebMatrix,Razor,ASP.NET/MVC)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1900600463707926528.htm" title="SpringBoot设置过滤器(Filter)或拦截器(Interceptor)的执行顺序:@Order注解、setOrder()方法" target="_blank">SpringBoot设置过滤器(Filter)或拦截器(Interceptor)的执行顺序:@Order注解、setOrder()方法</a> <span class="text-muted">pan_junbiao</span> <a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/Boot/1.htm">Boot</a><a class="tag" taget="_blank" href="/search/%E6%88%91%E3%81%AE%E5%8E%9F%E5%88%9B/1.htm">我の原创</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>JavaWeb过滤器、拦截器、监听器,系列文章:(1)过滤器(Filter)的使用:《Servlet过滤器(Filter)的使用:Filter接口、@WebFilter注释》《SpringMVC使用过滤器(Filter)解决中文乱码》《SpringBoot过滤器(Filter)的使用:Filter接口、FilterRegistrationBean类配置、@WebFilter注释》《SpringBo</div> </li> <li><a href="/article/1900566163969077248.htm" title="【Rust指南】快速入门 开发环境 hello world_rust开发是啥" target="_blank">【Rust指南】快速入门 开发环境 hello world_rust开发是啥</a> <span class="text-muted">2401_89213119</span> <a class="tag" taget="_blank" href="/search/rust/1.htm">rust</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>文章目录前言一、Rust语言的背景和特点1、为什么要用Rust?2、与其他编程语言相比较3、Rust特别擅长的领域4、Rust的用户和案例5、Rust的优缺点二、Rust的安装与开发工具1、安装Rust2、开发工具三、编写helloworld1、从零到一打印helloworld2、代码与运行过程分析前言本篇博客是Rust语言系列的开篇之作,以后有关Ru</div> </li> <li><a href="/article/1900539413688020992.htm" title="2024 年java 和Python 开发工具系列激活码( 持续更新)" target="_blank">2024 年java 和Python 开发工具系列激活码( 持续更新)</a> <span class="text-muted">hhhaadei</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a> <div>7EX1SHUD24-eyJsaWNlbnNlSWQiOiI3RVgxU0hVRDI0IiwibGljZW5zZWVOYW1lIjoibWFvIHplZG9uZyIsImxpY2Vuc2VlVHlwZSI6IlBFUlNPTkFMIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsI</div> </li> <li><a href="/article/1900512412986044416.htm" title="# Java开发环境配置指南:JDK环境变量详细设置" target="_blank"># Java开发环境配置指南:JDK环境变量详细设置</a> <span class="text-muted">小蛋6g</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Java开发环境的搭建是每位初学者的必经之路,而正确配置环境变量是保证开发工具正常运行的关键。本文将详细介绍Windows系统下JDK环境变量的配置方法,帮助新手快速完成基础设置。---一、准备工作1.已成功安装JDK(推荐JDK8或11等LTS版本)2.确认JDK安装路径(默认路径示例:`C:\ProgramFiles\Java\jdk-20.0.1`)>提示:安装时建议自定义路径避免空格和中文</div> </li> <li><a href="/article/1900501944435273728.htm" title="Spring MVC 面试题" target="_blank">Spring MVC 面试题</a> <span class="text-muted">A逍遥人世欢</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>概述什么是SpringMVC?简单介绍下你对SpringMVC的理解?SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。SpringMVC的优点可以支持各种视图技术,而不仅仅局限于JSP;与Spring框架集成(如I</div> </li> <li><a href="/article/1900492612138233856.htm" title="院士领衔、IEEE Fellow 坐镇,清华、上交大、复旦、同济等专家齐聚 2025 全球机器学习技术大会" target="_blank">院士领衔、IEEE Fellow 坐镇,清华、上交大、复旦、同济等专家齐聚 2025 全球机器学习技术大会</a> <span class="text-muted">CSDN资讯</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>随着Manus出圈,OpenManus、OWL迅速开源,OpenAI推出智能体开发工具,全球AI生态正经历新一轮智能体革命。大模型如何协同学习?大模型如何自我进化?新型强化学习技术如何赋能智能体?围绕这些关键问题,由CSDN&Boolan联合举办的「2025全球机器学习技术大会」将于4月18-19日在上海隆重举行。大会云集院士、10所高校科研工作者、近30家一线科技企业技术实战专家组成的超50位重</div> </li> <li><a href="/article/1900492234252414976.htm" title="Spring MVC面试题(一)" target="_blank">Spring MVC面试题(一)</a> <span class="text-muted">码农 小王</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>1.什么是SpringMVC?全称为ModelViewController,SpringMVC是Spring的一个模块,基于MVC架构模式的一个框架2.SpringMVC优点?1.可用各种视图技术,不仅限于JSP2.支持各种请求资源映射策略3.SpringMVC工作原理?1.客户端发送请求到DispatcherServlet2.DispatcherServlet查询handlerMapping找到</div> </li> <li><a href="/article/1900461463638700032.htm" title="用Python开发一个简单的“记忆翻牌”小游戏" target="_blank">用Python开发一个简单的“记忆翻牌”小游戏</a> <span class="text-muted">风亦辰739</span> <a class="tag" taget="_blank" href="/search/Python%E5%B0%8F%E6%B8%B8%E6%88%8F/1.htm">Python小游戏</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pygame/1.htm">pygame</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>“记忆翻牌”是一款经典的益智小游戏,玩家需要通过记忆卡片的位置配对相同的图案。今天我们将使用pygame库实现一个简单版本的记忆翻牌游戏。一、游戏规则游戏开始时,卡片会随机排列并翻面。玩家一次可以翻两张卡片:如果图案相同,卡片保持翻开状态。如果图案不同,卡片会短暂显示后翻回去。游戏目标是用最少的步数找到所有配对。二、开发环境开发工具:任意Python编辑器(如PyCharm、VSCode)。依赖库</div> </li> <li><a href="/article/1900414566890795008.htm" title="MySQL 技术浅析(聚簇索引、UndoLog、RedoLog、MVCC)" target="_blank">MySQL 技术浅析(聚簇索引、UndoLog、RedoLog、MVCC)</a> <span class="text-muted">代码没写完哪有脸睡觉</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>MySQL核心技术深度解析一、聚簇索引与非聚簇索引1.聚簇索引结构存储方式InnoDB中,聚簇索引的叶子节点直接存储完整数据行,数据按主键值物理排序存储。主键索引即数据文件,非叶子节点存储主键范围和子节点指针数据行与主键索引绑定,主键顺序决定磁盘存储顺序示例存储结构B+树结构:根节点→[id20;--索引设计为(name,age)2.事务控制建议控制事务粒度:单个事务执行时间<1秒批量操作分批次提</div> </li> <li><a href="/article/1900410403276517376.htm" title="MySql的MVCC实现原理" target="_blank">MySql的MVCC实现原理</a> <span class="text-muted">zyrr</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/mvcc/1.htm">mvcc</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>MySql的MVCC实现原理前言MVCC解决什么问题MVCC的实现3个隐式字段UndoLogReadView读视图大致流程读已提交和可重复隔离级别下的快照读前言什么是MVCC?MVCC(Multi-VersionConcurrencyControl)即多版本并发控制,是乐观锁的一种实现方式,在MySql数据库中主要是为了提高数据库的并发性能,做到读写冲突不加锁,这里的读指的是快照读。快照读与当前读</div> </li> <li><a href="/article/1900410403901468672.htm" title="快速上手:ASP.NET Core MVC 与 EF Core 操作 MySQL 数据库完整实例" target="_blank">快速上手:ASP.NET Core MVC 与 EF Core 操作 MySQL 数据库完整实例</a> <span class="text-muted">殷连靖Harlan</span> <div>快速上手:ASP.NETCoreMVC与EFCore操作MySQL数据库完整实例【下载地址】ASP.NETCoreMVC使用EF操作MySQL数据库完整实例ASP.NETCoreMVC使用EF操作MySQL数据库完整实例本资源提供了一套完整的示例项目,展示了如何在ASP.NETCoreMVC应用程序中使用EntityFramework(EF)来操作MySQL数据库项目地址:https://gitc</div> </li> <li><a href="/article/1900408000644968448.htm" title="【MySQL】MVCC详解与MVCC实现原理(MySQL专栏启动)" target="_blank">【MySQL】MVCC详解与MVCC实现原理(MySQL专栏启动)</a> <span class="text-muted">2401_89317296</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>如果此文还不错的话,还请关注、点赞、收藏三连支持一下博主~本文目录本文导读一、什么是MVCC二、MVCC的实现原理1、MVCC多版本实现2、MVCC实现原理3、什么是ReadView3.1、ReadView解析3.2、ReadView含义3.3、ReadView如何判断版本链可用三、当前读,快照读与MVCC1、什么是当前读和快照读</div> </li> <li><a href="/article/1900404724671246336.htm" title="ASP.NET CORE MVC EF框架" target="_blank">ASP.NET CORE MVC EF框架</a> <span class="text-muted">sanzk</span> <a class="tag" taget="_blank" href="/search/ASP.NET/1.htm">ASP.NET</a><a class="tag" taget="_blank" href="/search/CORE/1.htm">CORE</a><a class="tag" taget="_blank" href="/search/EF/1.htm">EF</a> <div>1.一个视图中的多个表单Form中的变量。方式一:视图中跨Form变量不能用,得各自定义变量否则编译不能通过。变量名还不能相同。或者方式二:在Form之外定义变量@{ViewData["Title"]="ExpenseForm";}@{Layout=null;}ExpenseFormdiv,table,tr,td{margin:0px;padding:0px;}.myTable{width:60</div> </li> <li><a href="/article/1900374831820500992.htm" title="Uni-App iOS 打包全攻略:从证书申请到上架 App Store,详解每一步" target="_blank">Uni-App iOS 打包全攻略:从证书申请到上架 App Store,详解每一步</a> <span class="text-muted">奶凶的小熊崽</span> <a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/cocoa/1.htm">cocoa</a> <div>一、准备工作在打包iOS应用前,需要准备以下内容:一台macOS设备(因为iOS应用只能在macOS设备上编译)。安装Xcode(建议使用最新版本)。安装HBuilderX(DCloud官方开发工具)。Apple开发者账号(必须是付费的AppleDeveloper账号)。Uni-App项目(已开发完成,并可以正常运行)。二、申请iOS证书和描述文件iOS应用的安装和发布需要开发者证书(.p12)和</div> </li> <li><a href="/article/1900339660199096320.htm" title="C# 特性(Attributes)使用详解" target="_blank">C# 特性(Attributes)使用详解</a> <span class="text-muted">鲤籽鲲</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E6%8D%A1%E6%BC%8F/1.htm">知识捡漏</a> <div>总目录前言在C#中,特性(Attributes)是一种用于向代码添加元数据的强大机制。这些元数据可以被编译器、运行时环境或开发工具读取,并用于控制程序的行为。本文将详细介绍C#中特性的基本概念、常见用法以及一些高级应用。一、什么是特性?1.定义特性(Attribute)是C#中用于向代码元素(类、方法、属性等)附加元数据(Metadata)的声明性标记,本质是继承自System.Attribute</div> </li> <li><a href="/article/1900311927050006528.htm" title="pythonwin怎么用_1.5.1 PythonWin的使用方法" target="_blank">pythonwin怎么用_1.5.1 PythonWin的使用方法</a> <span class="text-muted">weixin_39551996</span> <a class="tag" taget="_blank" href="/search/pythonwin%E6%80%8E%E4%B9%88%E7%94%A8/1.htm">pythonwin怎么用</a> <div>1.5Python的开发工具Python的开发工具非常丰富,有许多强大的智能开发环境(IDE,IntegratedDevelopmentEnvironment)工具,如Komodo、PythonWin、Eclipse等。这些工具不仅支持图形化操作,而且具备编辑、调试等功能。此外,文本编辑器也可作为Python的开发环境,如EditPlus、Vi等。1.5.1PythonWin的使用方法Python</div> </li> <li><a href="/article/1900268053644505088.htm" title="vue面试题" target="_blank">vue面试题</a> <span class="text-muted">阡陌路人</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">前端面试题</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a> <div>一、mvc与mvvm的区别俩者都为开发架构,,后端用的比较多的是mvc,前端则是mvvm,移动端俩者都有。MVC是包括view视图层、controller控制层、model数据层。各部分之间的通信都是单向的。适合大型项目。MVVM包括view视图层、model数据层、viewmodel层。各部分通信都是双向的。适合小型项目。二、vue的事件修饰符.stop阻止冒泡,由内到外.prevent阻止默认</div> </li> <li><a href="/article/1900247006954188800.htm" title="WPF未来展望:紧跟技术发展趋势,探索新的可能性" target="_blank">WPF未来展望:紧跟技术发展趋势,探索新的可能性</a> <span class="text-muted">xcLeigh</span> <a class="tag" taget="_blank" href="/search/WPF/1.htm">WPF</a><a class="tag" taget="_blank" href="/search/%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/1.htm">从入门到精通</a><a class="tag" taget="_blank" href="/search/wpf/1.htm">wpf</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a> <div>WPF未来展望:紧跟技术发展趋势,探索新的可能性一、前言二、WPF与.NET技术的融合发展2.1拥抱.NETCore2.2利用.NET5及后续版本的新特性三、WPF在新兴技术领域的应用拓展3.1与云计算的结合3.2融入物联网生态四、WPF在用户体验和设计方面的创新4.1响应式设计4.2增强的动画和交互效果五、WPF开发工具和框架的演进5.1VisualStudio的持续优化5.2新的开发框架和库的</div> </li> <li><a href="/article/1900202007357091840.htm" title="智能编程新时代:基于DeepSeek的编程开发工具引领未来" target="_blank">智能编程新时代:基于DeepSeek的编程开发工具引领未来</a> <span class="text-muted">inscode_056</span> <div>智能编程新时代:基于DeepSeek的编程开发工具引领未来随着人工智能技术的飞速发展,编程开发工具也在不断进化。如今,一款融合了DeepSeek的强大AI能力的编程开发工具正在改变着开发者的工作方式,为他们带来了前所未有的高效与便捷。本文将详细介绍这款工具的应用场景、巨大价值,并引导读者体验其带来的变革。最新接入DeepSeek-V3模型,点击下载最新版本InsCodeAIIDE一、智能化编程的新</div> </li> <li><a href="/article/1900143505720799232.htm" title="Vue3的Hook指南" target="_blank">Vue3的Hook指南</a> <span class="text-muted">Hopebearer_</span> <a class="tag" taget="_blank" href="/search/Vue3/1.htm">Vue3</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>文章目录一、什么是Hook?1.技术本质2.与工具函数的区别二、Hook存在的意义1.解决传统模式的三大痛点2.核心优势矩阵三、开发实践指南1.基础创建模式2.组件内使用四、最佳实践1.复杂Hook结构2.类型安全增强五、应用场景1.状态共享方案2.跨组件通信六、性能优化策略1.副作用管理2.惰性加载Hook七、调试技巧1.开发工具追踪2.控制台检查八、应用案例1.数据可视化Hook2.微前端状态</div> </li> <li><a href="/article/1900119793625788416.htm" title="技术分享连接汇总[201712]" target="_blank">技术分享连接汇总[201712]</a> <span class="text-muted">六月星空2011</span> <a class="tag" taget="_blank" href="/search/Java%E9%AB%98%E7%BA%A7%E4%BA%A4%E6%B5%81/1.htm">Java高级交流</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF/1.htm">技术</a> <div>内容整理自->java高级交流群【329019348】更多Java高级交流文章2017/12/01最好用的IntelliJ插件Top10jrebeljavaee开发工具SpringCloud限流详解(附源码)免费的编程中文书籍索引ModernJavaRecipes-KenKousenWHATISDEADLOCKANDHOWTOPREVENTIT?基于Redis的限流系统的设计分布式环境下限流方案的</div> </li> <li><a href="/article/1900089784500547584.htm" title="2.5 Spring Boot异常处理全局化:@ControllerAdvice实战" target="_blank">2.5 Spring Boot异常处理全局化:@ControllerAdvice实战</a> <span class="text-muted">Sendingab</span> <a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/1.htm">从入门到精通</a><a class="tag" taget="_blank" href="/search/%E9%9B%B6%E5%9F%BA%E7%A1%807%E5%A4%A9%E7%B2%BE%E9%80%9ASpring/1.htm">零基础7天精通Spring</a><a class="tag" taget="_blank" href="/search/Boot/1.htm">Boot</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>SpringBoot全局异常处理:@ControllerAdvice深度解析一、异常处理机制全景图1.1SpringMVC异常处理流程mermaidgraphTDA[客户端请求]-->B[DispatcherServlet]B-->C{Controller处理}C-->|正常|D[返回数据]C-->|异常|E[ExceptionHandlerResolver]E-->F[查找@ExceptionH</div> </li> <li><a href="/article/1900084612982435840.htm" title="TouchGFX之MVP" target="_blank">TouchGFX之MVP</a> <span class="text-muted">Stone_lu。</span> <a class="tag" taget="_blank" href="/search/STM32/1.htm">STM32</a><a class="tag" taget="_blank" href="/search/arm%E5%BC%80%E5%8F%91/1.htm">arm开发</a> <div>TouchGFX用户接口遵循Model-View-Presenter(MVP)架构模式,它是Model-View-Controller(MVC)模式的派生模式。两者都广泛用于构建用户接口应用。MVP模式的主要优势是:关注点分离:将代码分成不同的部分提供,每部分有自己的任务。这使得代码更简单、可重复使用性更高且更易于维护。单元测试:由于UI的逻辑(Presenter)独立于视图(View),因此,单</div> </li> <li><a href="/article/1900067221963599872.htm" title="【第1到23讲】 基于vue + spring boot学生宿舍管理系统(文末附项目完整源代码+万字文档)" target="_blank">【第1到23讲】 基于vue + spring boot学生宿舍管理系统(文末附项目完整源代码+万字文档)</a> <span class="text-muted">LuXi_foryou</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>基于vue+springboot学生宿舍管理1、环境准备1、安装node.js2、安装vue-cli3、安装vscode开发工具2、下载node.js浏览器打开https://nodejs.org/zh-cn/download/进入下载1.2点击【以往的版本】进入所示列表界面,选择自己所需要的版本进行下载安装3、vue-cli安装1.2.1检查node.js是否安装通过命令提示符,node-vnp</div> </li> <li><a href="/article/1900021029896515584.htm" title="基于HarmonyNext的高性能多线程任务调度实战指南" target="_blank">基于HarmonyNext的高性能多线程任务调度实战指南</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/harmonyos-next/1.htm">harmonyos-next</a> <div>基于HarmonyNext的高性能多线程任务调度实战指南引言在现代应用开发中,高性能任务调度是一个复杂但至关重要的需求。HarmonyNext作为华为最新的操作系统,提供了强大的多线程支持和高效的开发工具。本文将深入探讨如何在HarmonyNext平台上使用ArkTS实现高性能多线程任务调度,并通过一个实战案例来详细讲解如何实现一个多线程任务调度器。环境准备在开始之前,确保你已经安装了以下工具:H</div> </li> <li><a href="/article/1899987013407404032.htm" title="Windows 11开发:全面指南" target="_blank">Windows 11开发:全面指南</a> <span class="text-muted">网络安全我来了</span> <a class="tag" taget="_blank" href="/search/IT%E6%8A%80%E6%9C%AF/1.htm">IT技术</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a> <div>Windows11开发:全面指南在这个瞬息万变的技术世界,保持更新并掌握最新的开发工具至关重要。Windows11引入了一些令人振奋的新特性,特别是面向开发人员的功能。这篇文章将帮助你深入了解这些新特性,并指导你如何充分利用Windows11来提升你的开发体验。1.Windows11新特性1.1面向开发人员的新增功能首先,让我们来看看Windows11为开发人员带来了哪些新功能。你是否曾经感到开发</div> </li> <li><a href="/article/1899943521935224832.htm" title="使用HBuilderX高效开发微信小程序全流程指南" target="_blank">使用HBuilderX高效开发微信小程序全流程指南</a> <span class="text-muted">斯~内克</span> <a class="tag" taget="_blank" href="/search/vue%E7%9F%A5%E8%AF%86%E7%82%B9/1.htm">vue知识点</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AE%B0%E5%BD%95/1.htm">开发记录</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/notepad%2B%2B/1.htm">notepad++</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a> <div>一、为什么选择HBuilderX开发微信小程序?1.1跨平台开发利器HBuilderX作为DCloud推出的前端开发工具,凭借其强大的uniapp框架支持,已成为多端开发的首选工具。通过一套代码即可编译生成微信小程序、H5、Android/iOS等多端应用,极大提升开发效率。1.2深度集成的小程序开发支持内置微信小程序语法提示和代码块实时预览与真机调试功能自动处理路径别名和文件引用支持条件编译实现</div> </li> <li><a href="/article/1899940870027800576.htm" title="ThinkPHP框架中各模块通过MVC架构和扩展机制协同工作形成完整的请求处理流程" target="_blank">ThinkPHP框架中各模块通过MVC架构和扩展机制协同工作形成完整的请求处理流程</a> <span class="text-muted">Wiktok</span> <a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a> <div>在ThinkPHP框架中,各模块通过MVC架构和扩展机制协同工作,形成完整的请求处理流程。以下是核心模块的功能及协作关系分析:一、路由(Route)作用:负责将HTTP请求的URL映射到具体的控制器和方法,支持动态参数解析、RESTful风格接口定义,并实现URL的优雅化(如隐藏入口文件)31119。协作关系:与控制器配合:路由解析后直接调用对应控制器的操作方法,例如Route::get('use</div> </li> <li><a href="/article/1899925610663309312.htm" title="谈谈Android项目框架的前世今生" target="_blank">谈谈Android项目框架的前世今生</a> <span class="text-muted">积木zz</span> <a class="tag" taget="_blank" href="/search/Android%E7%AC%94%E8%AE%B0/1.htm">Android笔记</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E6%9E%B6%E6%9E%84/1.htm">项目架构</a><a class="tag" taget="_blank" href="/search/kotlin/1.htm">kotlin</a> <div>嗨,大家好,今天出了大太阳,真是美好的开始。这篇文章和大家说说Android届流行的三大框架,了解下架构的前世今生,以及我对于这些框架的一些认识和看法。三大框架区别MVC架构介绍Model:数据模型,比如我们从数据库或者网络获取数据View:视图,也就是我们的xml布局文件Controller:控制器,也就是我们的Activity模型联系View-->Controller,也就是反应View的一些</div> </li> <li><a href="/article/1899904803258036224.htm" title="SpringMVC (一)基础" target="_blank">SpringMVC (一)基础</a> <span class="text-muted">小安同学iter</span> <a class="tag" taget="_blank" href="/search/SSM%E6%A1%86%E6%9E%B6/1.htm">SSM框架</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/java-ee/1.htm">java-ee</a><a class="tag" taget="_blank" href="/search/intellij-idea/1.htm">intellij-idea</a> <div>目录SpringMVC一简单使用1新建模块选择指定参数2创建实现类3将项目启动4运行结果:在浏览器当中响应执行二RequestMapping三请求限定SpringMVCSpringMVC是Spring的web模块,用来开发Web应用,SpringMVC应用最终作为B/S,C/S模式下的Server端,Web应用的核心是处理HTTP响应。SpringWebMVC是构建在ServletAPI上的原始W</div> </li> <li><a href="/article/73.htm" title="Hadoop(一)" target="_blank">Hadoop(一)</a> <span class="text-muted">朱辉辉33</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>今天在诺基亚第一天开始培训大数据,因为之前没接触过Linux,所以这次一起学了,任务量还是蛮大的。 首先下载安装了Xshell软件,然后公司给了账号密码连接上了河南郑州那边的服务器,接下来开始按照给的资料学习,全英文的,头也不讲解,说锻炼我们的学习能力,然后就开始跌跌撞撞的自学。这里写部分已经运行成功的代码吧.    在hdfs下,运行hadoop fs -mkdir /u</div> </li> <li><a href="/article/200.htm" title="maven An error occurred while filtering resources" target="_blank">maven An error occurred while filtering resources</a> <span class="text-muted">blackproof</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/%E6%8A%A5%E9%94%99/1.htm">报错</a> <div>转:http://stackoverflow.com/questions/18145774/eclipse-an-error-occurred-while-filtering-resources   maven报错: maven An error occurred while filtering resources   Maven -> Update Proje</div> </li> <li><a href="/article/327.htm" title="jdk常用故障排查命令" target="_blank">jdk常用故障排查命令</a> <span class="text-muted">daysinsun</span> <a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a> <div>linux下常见定位命令: 1、jps      输出Java进程       -q       只输出进程ID的名称,省略主类的名称;       -m      输出进程启动时传递给main函数的参数;     &nb</div> </li> <li><a href="/article/454.htm" title="java 位移运算与乘法运算" target="_blank">java 位移运算与乘法运算</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BD%8D%E7%A7%BB/1.htm">位移</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%AE%97/1.htm">运算</a><a class="tag" taget="_blank" href="/search/%E4%B9%98%E6%B3%95/1.htm">乘法</a> <div>  对于 JAVA 编程中,适当的采用位移运算,会减少代码的运行时间,提高项目的运行效率。这个可以从一道面试题说起:     问题: 用最有效率的方法算出2 乘以8 等於几?” 答案:2 << 3 由此就引发了我的思考,为什么位移运算会比乘法运算更快呢?其实简单的想想,计算机的内存是用由 0 和 1 组成的二</div> </li> <li><a href="/article/581.htm" title="java中的枚举(enmu)" target="_blank">java中的枚举(enmu)</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>从jdk1.5开始,java增加了enum(枚举)这个类型,但是大家在平时运用中还是比较少用到枚举的,而且很多人和我一样对枚举一知半解,下面就跟大家一起学习下enmu枚举。先看一个最简单的枚举类型,一个返回类型的枚举: public enum ResultType { /** * 成功 */ SUCCESS, /** * 失败 */ FAIL, </div> </li> <li><a href="/article/708.htm" title="MQ初级学习" target="_blank">MQ初级学习</a> <span class="text-muted">510888780</span> <a class="tag" taget="_blank" href="/search/activemq/1.htm">activemq</a> <div>1.下载ActiveMQ 去官方网站下载:http://activemq.apache.org/ 2.运行ActiveMQ 解压缩apache-activemq-5.9.0-bin.zip到C盘,然后双击apache-activemq-5.9.0-\bin\activemq-admin.bat运行ActiveMQ程序。 启动ActiveMQ以后,登陆:http://localhos</div> </li> <li><a href="/article/835.htm" title="Spring_Transactional_Propagation" target="_blank">Spring_Transactional_Propagation</a> <span class="text-muted">布衣凌宇</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/transactional/1.htm">transactional</a> <div>//事务传播属性 @Transactional(propagation=Propagation.REQUIRED)//如果有事务,那么加入事务,没有的话新创建一个 @Transactional(propagation=Propagation.NOT_SUPPORTED)//这个方法不开启事务 @Transactional(propagation=Propagation.REQUIREDS_N</div> </li> <li><a href="/article/962.htm" title="我的spring学习笔记12-idref与ref的区别" target="_blank">我的spring学习笔记12-idref与ref的区别</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>idref用来将容器内其他bean的id传给<constructor-arg>/<property>元素,同时提供错误验证功能。例如: <bean id ="theTargetBean" class="..." /> <bean id ="theClientBean" class=&quo</div> </li> <li><a href="/article/1089.htm" title="Jqplot之折线图" target="_blank">Jqplot之折线图</a> <span class="text-muted">antlove</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/timeseries/1.htm">timeseries</a><a class="tag" taget="_blank" href="/search/jqplot/1.htm">jqplot</a> <div>timeseriesChart.html <script type="text/javascript" src="jslib/jquery.min.js"></script> <script type="text/javascript" src="jslib/excanvas.min.js&</div> </li> <li><a href="/article/1216.htm" title="JDBC中事务处理应用" target="_blank">JDBC中事务处理应用</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/JDBC%E7%BC%96%E7%A8%8B/1.htm">JDBC编程</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1%E6%8E%A7%E5%88%B6%E8%AF%AD%E5%8F%A5/1.htm">事务控制语句</a> <div>  解释事务的概念; 事务控制是sql语句中的核心之一;事务控制的作用就是保证数据的正常执行与异常之后可以恢复   事务常用命令:             Commit提交         </div> </li> <li><a href="/article/1343.htm" title="[转]ConcurrentHashMap Collections.synchronizedMap和Hashtable讨论" target="_blank">[转]ConcurrentHashMap Collections.synchronizedMap和Hashtable讨论</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8/1.htm">线程安全</a><a class="tag" taget="_blank" href="/search/HashMap/1.htm">HashMap</a> <div>在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK1.0的一部分。 Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的――Hashtable的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的</div> </li> <li><a href="/article/1470.htm" title="ng-if与ng-show、ng-hide指令的区别和注意事项" target="_blank">ng-if与ng-show、ng-hide指令的区别和注意事项</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a> <div>        angularJS中的ng-show、ng-hide、ng-if指令都可以用来控制dom元素的显示或隐藏。ng-show和ng-hide根据所给表达式的值来显示或隐藏HTML元素。当赋值给ng-show指令的值为false时元素会被隐藏,值为true时元素会显示。ng-hide功能类似,使用方式相反。元素的显示或</div> </li> <li><a href="/article/1597.htm" title="【持久化框架MyBatis3七】MyBatis3定义typeHandler" target="_blank">【持久化框架MyBatis3七】MyBatis3定义typeHandler</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/TypeHandler/1.htm">TypeHandler</a> <div>什么是typeHandler? typeHandler用于将某个类型的数据映射到表的某一列上,以完成MyBatis列跟某个属性的映射   内置typeHandler MyBatis内置了很多typeHandler,这写typeHandler通过org.apache.ibatis.type.TypeHandlerRegistry进行注册,比如对于日期型数据的typeHandler, </div> </li> <li><a href="/article/1724.htm" title="上传下载文件rz,sz命令" target="_blank">上传下载文件rz,sz命令</a> <span class="text-muted">bitcarter</span> <a class="tag" taget="_blank" href="/search/linux%E5%91%BD%E4%BB%A4rz/1.htm">linux命令rz</a> <div>刚开始使用rz上传和sz下载命令: 因为我们是通过secureCRT终端工具进行使用的所以会有上传下载这样的需求: 我遇到的问题: sz下载A文件10M左右,没有问题 但是将这个文件A再传到另一天服务器上时就出现传不上去,甚至出现乱码,死掉现象,具体问题 解决方法: 上传命令改为;rz -ybe 下载命令改为:sz -be filename 如果还是有问题: 那就是文</div> </li> <li><a href="/article/1851.htm" title="通过ngx-lua来统计nginx上的虚拟主机性能数据" target="_blank">通过ngx-lua来统计nginx上的虚拟主机性能数据</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/ngx-lua%E3%80%80%E7%BB%9F%E8%AE%A1+%E8%A7%A3%E7%A6%81ip/1.htm">ngx-lua 统计 解禁ip</a> <div>介绍 以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页: https://github.com/skyeydemon/ngx-lua-stats 功能 支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location统计. 可以统计与query-times request-time </div> </li> <li><a href="/article/1978.htm" title="java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132" target="_blank">java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.Arrays; import java.util.Comparator; public class MinNumFromIntArray { /** * Q68输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。 * 例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题</div> </li> <li><a href="/article/2105.htm" title="Oracle基本操作" target="_blank">Oracle基本操作</a> <span class="text-muted">ccii</span> <a class="tag" taget="_blank" href="/search/Oracle+SQL%E6%80%BB%E7%BB%93/1.htm">Oracle SQL总结</a><a class="tag" taget="_blank" href="/search/Oracle+SQL%E8%AF%AD%E6%B3%95/1.htm">Oracle SQL语法</a><a class="tag" taget="_blank" href="/search/Oracle%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/1.htm">Oracle基本操作</a><a class="tag" taget="_blank" href="/search/Oracle+SQL/1.htm">Oracle SQL</a> <div>一、表操作 1. 常用数据类型 NUMBER(p,s):可变长度的数字。p表示整数加小数的最大位数,s为最大小数位数。支持最大精度为38位 NVARCHAR2(size):变长字符串,最大长度为4000字节(以字符数为单位) VARCHAR2(size):变长字符串,最大长度为4000字节(以字节数为单位) CHAR(size):定长字符串,最大长度为2000字节,最小为1字节,默认</div> </li> <li><a href="/article/2232.htm" title="[强人工智能]实现强人工智能的路线图" target="_blank">[强人工智能]实现强人工智能的路线图</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>     1:创建一个用于记录拓扑网络连接的矩阵数据表      2:自动构造或者人工复制一个包含10万个连接(1000*1000)的流程图      3:将这个流程图导入到矩阵数据表中      4:在矩阵的每个有意义的节点中嵌入一段简单的</div> </li> <li><a href="/article/2359.htm" title="给Tomcat,Apache配置gzip压缩(HTTP压缩)功能" target="_blank">给Tomcat,Apache配置gzip压缩(HTTP压缩)功能</a> <span class="text-muted">cwqcwqmax9</span> <a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a> <div>背景: HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,</div> </li> <li><a href="/article/2486.htm" title="SpringMVC and Struts2" target="_blank">SpringMVC and Struts2</a> <span class="text-muted">dashuaifu</span> <a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a><a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a> <div>SpringMVC VS Struts2 1: spring3开发效率高于struts 2: spring3 mvc可以认为已经100%零配置 3: struts2是类级别的拦截, 一个类对应一个request上下文, springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应 所以说从架构本身上 spring3 mvc就容易实现r</div> </li> <li><a href="/article/2613.htm" title="windows常用命令行命令" target="_blank">windows常用命令行命令</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/cmd/1.htm">cmd</a><a class="tag" taget="_blank" href="/search/command/1.htm">command</a> <div>在windows系统中,点击开始-运行,可以直接输入命令行,快速打开一些原本需要多次点击图标才能打开的界面,如常用的输入cmd打开dos命令行,输入taskmgr打开任务管理器。此处列出了网上搜集到的一些常用命令。winver 检查windows版本 wmimgmt.msc 打开windows管理体系结构(wmi) wupdmgr windows更新程序 wscrip</div> </li> <li><a href="/article/2740.htm" title="再看知名应用背后的第三方开源项目" target="_blank">再看知名应用背后的第三方开源项目</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a> <div>知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《 iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者 @iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架。另外txx's blog中详细介绍了 Facebook Paper使用的第三</div> </li> <li><a href="/article/2867.htm" title="Objective-c单例模式的正确写法" target="_blank">Objective-c单例模式的正确写法</a> <span class="text-muted">jsntghf</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/iPhone/1.htm">iPhone</a> <div>一般情况下,可能我们写的单例模式是这样的: #import <Foundation/Foundation.h> @interface Downloader : NSObject + (instancetype)sharedDownloader; @end #import "Downloader.h" @implementation</div> </li> <li><a href="/article/2994.htm" title="jquery easyui datagrid 加载成功,选中某一行" target="_blank">jquery easyui datagrid 加载成功,选中某一行</a> <span class="text-muted">hae</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/easyui/1.htm">easyui</a><a class="tag" taget="_blank" href="/search/datagrid/1.htm">datagrid</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%8A%A0%E8%BD%BD/1.htm">数据加载</a> <div>1.首先你需要设置datagrid的onLoadSuccess $( '#dg' ).datagrid({onLoadSuccess :  function (data){      $( '#dg' ).datagrid( 'selectRow' ,3); }});   2.onL</div> </li> <li><a href="/article/3121.htm" title="jQuery用户数字打分评价效果" target="_blank">jQuery用户数字打分评价效果</a> <span class="text-muted">ini</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>效果体验:http://hovertree.com/texiao/jquery/5.htmHTML文件代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery用户数字打分评分代码 - HoverTree</</div> </li> <li><a href="/article/3248.htm" title="mybatis的paramType" target="_blank">mybatis的paramType</a> <span class="text-muted">kerryg</span> <a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>MyBatis传多个参数: 1、采用#{0},#{1}获得参数:    Dao层函数方法:     public User selectUser(String name,String area); 对应的Mapper.xml    <select id="selectUser" result</div> </li> <li><a href="/article/3375.htm" title="centos 7安装mysql5.5" target="_blank">centos 7安装mysql5.5</a> <span class="text-muted">MrLee23</span> <a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a> <div>首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。   #列出所有被安装的rpm package rpm -qa | grep mariadb   #卸载 rpm -e mariadb-libs-5.</div> </li> <li><a href="/article/3502.htm" title="利用thrift来实现消息群发" target="_blank">利用thrift来实现消息群发</a> <span class="text-muted">qifeifei</span> <a class="tag" taget="_blank" href="/search/thrift/1.htm">thrift</a> <div>           Thrift项目一般用来做内部项目接偶用的,还有能跨不同语言的功能,非常方便,一般前端系统和后台server线上都是3个节点,然后前端通过获取client来访问后台server,那么如果是多太server,就是有一个负载均衡的方法,然后最后访问其中一个节点。那么换个思路,能不能发送给所有节点的server呢,如果能就</div> </li> <li><a href="/article/3629.htm" title="实现一个sizeof获取Java对象大小" target="_blank">实现一个sizeof获取Java对象大小</a> <span class="text-muted">teasp</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/HotSpot/1.htm">HotSpot</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AD%98/1.htm">内存</a><a class="tag" taget="_blank" href="/search/%E5%AF%B9%E8%B1%A1%E5%A4%A7%E5%B0%8F/1.htm">对象大小</a><a class="tag" taget="_blank" href="/search/sizeof/1.htm">sizeof</a> <div>   由于Java的设计者不想让程序员管理和了解内存的使用,我们想要知道一个对象在内存中的大小变得比较困难了。本文提供了可以获取对象的大小的方法,但是由于各个虚拟机在内存使用上可能存在不同,因此该方法不能在各虚拟机上都适用,而是仅在hotspot 32位虚拟机上,或者其它内存管理方式与hotspot 32位虚拟机相同的虚拟机上 适用。     </div> </li> <li><a href="/article/3756.htm" title="SVN错误及处理" target="_blank">SVN错误及处理</a> <span class="text-muted">xiangqian0505</span> <a class="tag" taget="_blank" href="/search/SVN%E6%8F%90%E4%BA%A4%E6%96%87%E4%BB%B6%E6%97%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%BC%BA%E8%A1%8C%E5%85%B3%E9%97%AD/1.htm">SVN提交文件时服务器强行关闭</a> <div>在SVN服务控制台打开资源库“SVN无法读取current” ---摘自网络 写道 SVN无法读取current修复方法 Can't read file : End of file found 文件:repository/db/txn_current、repository/db/current   其中current记录当前最新版本号,txn_current记录版本库中版本</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>