SpringMVC+Spring+Mybatis整合配置

  
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  
 <html xmlns="http://www.w3.org/1999/xhtml">
  
 <head>
  
 <link rel="canonical" href="http://blog.csdn.net/zmx729618/article/details/51895826"/>
 <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />
  
 <meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">
  
 <title>SpringMVC+Spring+Mybatis整合配置 - 零度的博客专栏
 - 博客频道 - CSDN.NET</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="description" content="1、Maven依赖文件:pom.xml&lt;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.apach" />
  
 <meta name="keywords" content="spring,spring mvc,Mybatis" />
  
  
 <script src="http://static.blog.csdn.net/scripts/blog_static_head.min.js" type="text/javascript"></script>
  
  
 <!--new top-->
 <!--new top-->
  
 <!-- ad begin -->
  
 <!-- ad end-->
  
 <link rel="Stylesheet" type="text/css" href="http://static.blog.csdn.net/skin/default/css/style.css?v=1.1" />
  
  
  
 <link id="RSSLink" title="RSS" type="application/rss+xml" rel="alternate" href="/zmx729618/rss/list" />
 <link rel="shortcut icon" href="http://c.csdnimg.cn/public/favicon.ico" />
 <link type="text/css" rel="stylesheet" href="http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/default.css" />
  
  
  
  
  
 <link href="http://c.csdnimg.cn/blog/csdn_public_blog_detail.min.css" type="text/css" rel="stylesheet" />
  
 <link rel="stylesheet" href="http://static.blog.csdn.net/css/csdn_blog_detail.min.css" />
  
  
  
  
 <!-- 请置于所有广告位代码之前 -->
 <script src="http://dup.baidustatic.com/js/ds.js"></script>
  
 </head>
  
  
 <body>
 <div class="tracking-ad" data-view="true" data-mod="ad_popu_72" data-mtp="62" data-order="40" data-con="ad_content_2072" >
 <script id="popuLayer_js_q" src="http://ads.csdn.net/js/popuLayer.js" defer="defer" type="text/javascript"></script>
 <div id="layerd" style="position: fixed;bottom:0px;right:0px;line-height:0px;z-index:1000">
 <div class="J_close layer_close" style="display:;background-color:#efefef;padding:0px;color:#333;font:12px/24px Helvetica,Tahoma,Arial,sans-serif;text-align:right;">关闭</div><!-- 广告占位容器 --><div id="cpro_u2895327"></div></div>
 <script> document.getElementById("popuLayer_js_q").onload = function () { var styObjd = styObj = { width: "300px", "height": parseInt(250) + 28 }; window.CSDN.Layer.PopuLayer("#layerd", { storageName: "layerd", styleObj: styObjd, total: 50, expoire: 1000 * 60 }); }</script><!-- 投放代码 --><script type="text/javascript"> /*服务器频道首页置顶Banner960*90,创建于2014-7-3*/ (window.cproArray = window.cproArray || []).push({ id: "u2895327" }); </script> <script src="http://cpro.baidustatic.com/cpro/ui/c.js" type="text/javascript"></script>
  
 </div>
  
 <!-- 广告位开始 -->
  
 <!-- 广告位结束 -->
  
  
  
 <!--new top-->
 <script id="toolbar-tpl-scriptId" fixed="true" prod="blog" skin="black" src="http://c.csdnimg.cn/public/common/toolbar/js/html.js" type="text/javascript"></script>
 <!--new top-->
 <div id="container">
 <div id="header">
 <div class="header">
 <div id="blog_title">
 <h2>
 <a href="http://blog.csdn.net/zmx729618">零度的博客专栏</a></h2>
 <h3>全栈式学徒长成记--工欲善其事必先利其器,不积小流无以成江海,不积跬步无以至千里!</h3>
 <div class="clear">
 </div>
 </div>
 <div class="clear">
 </div>
  
  
 </div>
 </div>
 <div id="navigator">
 <div class="navigator_bg">
 </div>
 <div class="navigator">
 <ul>
 <li id="btnContents"><a href="http://blog.csdn.net/zmx729618?viewmode=contents"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_mulu'])">
 <img src="http://static.blog.csdn.net/images/ico_list.gif">目录视图</span></a></li>
 <li id="btnView"><a href="http://blog.csdn.net/zmx729618?viewmode=list"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_zhaiyao'])">
 <img src="http://static.blog.csdn.net/images/ico_summary.gif">摘要视图</span></a></li>
 <li id="btnRss"><a href="http://blog.csdn.net/zmx729618/rss/list"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_RSS'])">
 <img src="http://static.blog.csdn.net/images/ico_rss.gif">订阅</span></a></li>
  
  
 </ul>
 </div>
 </div>
 <script type="text/javascript">
 var username = "zmx729618";
 var _blogger = username;
 var blog_address = "http://blog.csdn.net/zmx729618";
 var static_host = "http://static.blog.csdn.net";
 var currentUserName = "zp654337303";
 </script>
  
 <div id="body">
 <div id="main">
 <div class="main">
 <div class="ad_class">
 <div class="notice tracking-ad" data-mod='popu_3' >
  
  
 <a href="http://blog.csdn.net/blogdevteam/article/details/72917467">
 <font color=red><strong>征文 | 从高考,到程序员</strong></font></a>
  
 &nbsp;&nbsp;&nbsp;&nbsp
  
 <a href="http://blog.csdn.net/blogdevteam/article/details/73817254">
 <font color=blue><strong>CSDN日报20170627——《回眸后那流泪的脸——从高考到程序猿》</strong></font></a>
 &nbsp;&nbsp;&nbsp;&nbsp
  
  
 <a href="http://blog.csdn.net/turingbooks/article/details/73480804">
 <font color=red><strong>6 月书讯 | 最受欢迎的 SQL 入门书重磅升级</strong></font></a>
  
  
 </div> </div>
  
  
  
  
  
  
  
  
  
  
  
 <script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.js"></script>
  
 <script type="text/ecmascript">
 window.quickReplyflag = true;
  
 var isBole = false;
  
  
 var fasrc="http://my.csdn.net/my/favorite/miniadd?t=SpringMVC%2bSpring%2bMybatis%e6%95%b4%e5%90%88%e9%85%8d%e7%bd%ae&u=http://blog.csdn.net/zmx729618/article/details/51895826"
  
 </script>
 <div id="article_details" class="details">
 <div class="article_title">
 <span class="ico ico_type_Original"></span>
  
  
 <h1>
 <span class="link_title"><a href="/zmx729618/article/details/51895826">
 SpringMVC+Spring+Mybatis整合配置
 </a></span>
 </h1>
 </div>
  
  
  
 <div class="article_manage clearfix">
 <div class="article_l">
 <span class="link_categories">
 标签:
 <a href='http://www.csdn.net/tag/spring' target=_blank onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">spring</a><a href='http://www.csdn.net/tag/spring%20mvc' target=_blank onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">spring mvc</a><a href='http://www.csdn.net/tag/Mybatis' target=_blank onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">Mybatis</a>
 </span>
 </div>
 <div class="article_r">
 <span class="link_postdate">2016-07-13 11:18</span>
 <span class="link_view" title="阅读次数">665人阅读</span>
 <span class="link_comments" title="评论次数"> <a href="#comments" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(0)</span>
 <span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" onclick="javascript:collectArticle('SpringMVC%2bSpring%2bMybatis%e6%95%b4%e5%90%88%e9%85%8d%e7%bd%ae','51895826');return false;" title="收藏">收藏</a></span>
 <span class="link_report"> <a href="#report" onclick="javascript:report(51895826,2);return false;" title="举报">举报</a></span>
  
 </div>
 </div>
 <div class="embody" style="display:none" id="embody">
 <span class="embody_t">本文章已收录于:</span>
 <div class="embody_c" id="lib" value="{&quot;err&quot;:0,&quot;msg&quot;:&quot;ok&quot;,&quot;data&quot;:[]}"></div>
 </div>
 <style type="text/css">
 .embody{
 padding:10px 10px 10px;
 margin:0 -20px;
 border-bottom:solid 1px #ededed;
 }
 .embody_b{
 margin:0 ;
 padding:10px 0;
 }
 .embody .embody_t,.embody .embody_c{
 display: inline-block;
 margin-right:10px;
 }
 .embody_t{
 font-size: 12px;
 color:#999;
 }
 .embody_c{
 font-size: 12px;
 }
 .embody_c img,.embody_c em{
 display: inline-block;
 vertical-align: middle;
 }
 .embody_c img{
 width:30px;
 height:30px;
 }
 .embody_c em{
 margin: 0 20px 0 10px;
 color:#333;
 font-style: normal;
 }
 </style>
 <script type="text/javascript">
 $(function () {
 try
 {
 var lib = eval("("+$("#lib").attr("value")+")");
 var html = "";
 if (lib.err == 0) {
 $.each(lib.data, function (i) {
 var obj = lib.data[i];
 //html += '<img src="' + obj.logo + '"/>' + obj.name + "&nbsp;&nbsp;";
 html += ' <a href="' + obj.url + '" target="_blank">';
 html += ' <img src="' + obj.logo + '">';
 html += ' <em><b>' + obj.name + '</b></em>';
 html += ' </a>';
 });
 if (html != "") {
 setTimeout(function () {
 $("#lib").html(html);
 $("#embody").show();
 }, 100);
 }
 }
 } catch (err)
 { }
  
 });
 </script>
 <div class="category clearfix">
 <div class="category_l">
 <img src="http://static.blog.csdn.net/images/category_icon.jpg">
 <span>分类:</span>
 </div>
 <div class="category_r">
 <label onclick="GetCategoryArticles('6309398','zmx729618','top','51895826');">
 <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">Mybatis<em>(6)</em></span>
 <img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
 <img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
 <div class="subItem">
 <div class="subItem_t"><a href="http://blog.csdn.net/zmx729618/article/category/6309398" target="_blank">作者同类文章</a><i class="J_close">X</i></div>
 <ul class="subItem_l" id="top_6309398">
 </ul>
 </div>
 </label>
 <label onclick="GetCategoryArticles('3108443','zmx729618','top','51895826');">
 <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">Java<em>(125)</em></span>
 <img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
 <img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
 <div class="subItem">
 <div class="subItem_t"><a href="http://blog.csdn.net/zmx729618/article/category/3108443" target="_blank">作者同类文章</a><i class="J_close">X</i></div>
 <ul class="subItem_l" id="top_3108443">
 </ul>
 </div>
 </label>
 <label onclick="GetCategoryArticles('6168885','zmx729618','top','51895826');">
 <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">Spring<em>(26)</em></span>
 <img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
 <img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
 <div class="subItem">
 <div class="subItem_t"><a href="http://blog.csdn.net/zmx729618/article/category/6168885" target="_blank">作者同类文章</a><i class="J_close">X</i></div>
 <ul class="subItem_l" id="top_6168885">
 </ul>
 </div>
 </label>
 </div>
 </div>
 <div class="bog_copyright">
 <p class="copyright_p" >版权声明:本文为博主原创文章,未经博主允许不得转载。</p>
 </div>
  
  
  
  
  
  
  
  
 <div id="article_content" class="article_content tracking-ad" data-mod=popu_307 data-dsm = "post" >
  
 <h3>1、Maven依赖文件:pom.xml</h3>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_1_4959713" class="html" name="code" snippet_file_name="blog_20160713_1_4959713" code_snippet_id="1759641">&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;
 &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
 &lt;groupId&gt;org.nercita.ltxx&lt;/groupId&gt;
 &lt;artifactId&gt;ssm.sample&lt;/artifactId&gt;
 &lt;packaging&gt;war&lt;/packaging&gt;
 &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
 &lt;name&gt;ssm&lt;/name&gt;
 &lt;url&gt;http://maven.apache.org&lt;/url&gt;
  
 &lt;properties&gt;
 &lt;mysql.connector.version&gt;5.1.21&lt;/mysql.connector.version&gt;
 &lt;spring.version&gt;4.1.6.RELEASE&lt;/spring.version&gt;
 &lt;spring.security.version&gt;3.2.3.RELEASE&lt;/spring.security.version&gt;
 &lt;junit.version&gt;4.12&lt;/junit.version&gt;
 &lt;velocity.version&gt;1.6.1&lt;/velocity.version&gt;
 &lt;velocity.tools.version&gt;2.0&lt;/velocity.tools.version&gt;
 &lt;mock.version&gt;2.0.8&lt;/mock.version&gt;
 &lt;mybatis.version&gt;3.3.1&lt;/mybatis.version&gt;
 &lt;mybatis-spring.version&gt;1.2.2&lt;/mybatis-spring.version&gt;
 &lt;/properties&gt;
  
 &lt;dependencies&gt;
 &lt;!-- velocity --&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-context-support&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.apache.velocity&lt;/groupId&gt;
 &lt;artifactId&gt;velocity&lt;/artifactId&gt;
 &lt;version&gt;${velocity.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.apache.velocity&lt;/groupId&gt;
 &lt;artifactId&gt;velocity-tools&lt;/artifactId&gt;
 &lt;version&gt;${velocity.tools.version}&lt;/version&gt;
 &lt;/dependency&gt;
  
 &lt;!-- jsp support --&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
 &lt;artifactId&gt;javax.servlet-api&lt;/artifactId&gt;
 &lt;version&gt;3.1.0&lt;/version&gt;
 &lt;scope&gt;provided&lt;/scope&gt;
 &lt;/dependency&gt;
  
 &lt;dependency&gt;
 &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
 &lt;artifactId&gt;jstl&lt;/artifactId&gt;
 &lt;version&gt;1.2&lt;/version&gt; &lt;!-- just used the latest version, make sure you use the one you need --&gt;
 &lt;scope&gt;provided&lt;/scope&gt;
 &lt;/dependency&gt;
  
 &lt;!-- test support --&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;junit&lt;/groupId&gt;
 &lt;artifactId&gt;junit&lt;/artifactId&gt;
 &lt;version&gt;${junit.version}&lt;/version&gt;
 &lt;scope&gt;test&lt;/scope&gt;
 &lt;/dependency&gt;
  
  
 &lt;!-- mybatis support --&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.mybatis&lt;/groupId&gt;
 &lt;artifactId&gt;mybatis&lt;/artifactId&gt;
 &lt;version&gt;${mybatis.version}&lt;/version&gt;
 &lt;/dependency&gt;
  
 &lt;dependency&gt;
 &lt;groupId&gt;org.mybatis&lt;/groupId&gt;
 &lt;artifactId&gt;mybatis-spring&lt;/artifactId&gt;
 &lt;version&gt;${mybatis-spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
  
 &lt;dependency&gt;
 &lt;groupId&gt;org.apache.commons&lt;/groupId&gt;
 &lt;artifactId&gt;commons-dbcp2&lt;/artifactId&gt;
 &lt;version&gt;2.0&lt;/version&gt;
 &lt;/dependency&gt;
  
 &lt;dependency&gt;
 &lt;groupId&gt;mysql&lt;/groupId&gt;
 &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
 &lt;version&gt;${mysql.connector.version}&lt;/version&gt;
 &lt;/dependency&gt;
  
 &lt;!-- Spring support --&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-core&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
  
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-aop&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-context&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-context-support&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-jdbc&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-beans&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-web&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-expression&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-orm&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-oxm&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-aspects&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-tx&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-test&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;!-- spring mvc --&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework&lt;/groupId&gt;
 &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt;
 &lt;version&gt;${spring.version}&lt;/version&gt;
 &lt;/dependency&gt;
  
  
  
 &lt;!-- spring security --&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
 &lt;artifactId&gt;spring-security-core&lt;/artifactId&gt;
 &lt;version&gt;${spring.security.version}&lt;/version&gt;
 &lt;/dependency&gt;
  
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
 &lt;artifactId&gt;spring-security-config&lt;/artifactId&gt;
 &lt;version&gt;${spring.security.version}&lt;/version&gt;
 &lt;/dependency&gt;
  
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
 &lt;artifactId&gt;spring-security-taglibs&lt;/artifactId&gt;
 &lt;version&gt;${spring.security.version}&lt;/version&gt;
 &lt;/dependency&gt;
  
 &lt;dependency&gt;
 &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
 &lt;artifactId&gt;spring-security-web&lt;/artifactId&gt;
 &lt;version&gt;${spring.security.version}&lt;/version&gt;
 &lt;/dependency&gt;
  
 &lt;!-- aspectj weaver.jar 这是SpringAOP所要用到的依赖包 --&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.aspectj&lt;/groupId&gt;
 &lt;artifactId&gt;aspectjweaver&lt;/artifactId&gt;
 &lt;version&gt;1.8.2&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;org.aspectj&lt;/groupId&gt;
 &lt;artifactId&gt;aspectjrt&lt;/artifactId&gt;
 &lt;version&gt;1.8.2&lt;/version&gt;
 &lt;/dependency&gt;
  
 &lt;/dependencies&gt;
 &lt;build&gt;
 &lt;finalName&gt;ssm&lt;/finalName&gt;
 &lt;/build&gt;
 &lt;/project&gt;
 </pre>
 <p class="html" name="code"><br>
 &nbsp;</p>
 <h3>2、web.xml</h3>
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web.xml规定了有哪些显式的servlet,规定了最顶层的Context环境,是整个的纲领。它同时规定了对于哪些URL的请求归哪些servlet处理,哪些URL使用哪种编码方式。需要注意的是,对于没有人为指定配置文件的servlet,会自动在WEB-INF文件夹下找servletName-servlet.xml的文件作为其配置。</p>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_2_150164" class="html" name="code" snippet_file_name="blog_20160713_2_150164" code_snippet_id="1759641">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
 &lt;web-app version=&quot;3.0&quot; xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&quot;&gt;
  
 &lt;display-name&gt;SSM Web Application&lt;/display-name&gt;
  
 &lt;context-param&gt;
 &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
 &lt;param-value&gt;classpath*:applicationContext.xml&lt;/param-value&gt;
 &lt;!--指定Context的配置文件--&gt;
 &lt;/context-param&gt;
  
 &lt;!-- spring ContextLoaderListener 监听器 --&gt;
 &lt;listener&gt;
 &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;
 &lt;/listener&gt;
  
 &lt;!-- 编码过滤器 --&gt;
 &lt;filter&gt;
 &lt;filter-name&gt;characterEncodingFilter&lt;/filter-name&gt;
 &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt;
 &lt;init-param&gt;
 &lt;param-name&gt;encoding&lt;/param-name&gt;
 &lt;param-value&gt;UTF-8&lt;/param-value&gt;
 &lt;/init-param&gt;
 &lt;init-param&gt;
 &lt;param-name&gt;forceEncoding&lt;/param-name&gt;
 &lt;param-value&gt;true&lt;/param-value&gt;
 &lt;/init-param&gt;
 &lt;/filter&gt;
  
 &lt;filter-mapping&gt;
 &lt;filter-name&gt;characterEncodingFilter&lt;/filter-name&gt;
 &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
 &lt;/filter-mapping&gt;
  
 &lt;!-- spring mvc DispatcherServlet --&gt;
 &lt;servlet&gt;
 &lt;servlet-name&gt;ssm&lt;/servlet-name&gt;
 &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;
 &lt;init-param&gt;
 &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
 &lt;param-value&gt;classpath:config/webmvc-config.xml&lt;/param-value&gt;
 &lt;/init-param&gt;
 &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
 &lt;/servlet&gt;
  
 &lt;servlet-mapping&gt;
 &lt;servlet-name&gt;ssm&lt;/servlet-name&gt;
 &lt;url-pattern&gt;/&lt;/url-pattern&gt;
 &lt;/servlet-mapping&gt;
  
  
  
  
 &lt;/web-app&gt;
 </pre>
 <p><br>
 &nbsp;</p>
 <h3>3、applicationContext.xml</h3>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_3_3912155" class="html" name="code" snippet_file_name="blog_20160713_3_3912155" code_snippet_id="1759641">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
 &lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
 xmlns:aop=&quot;http://www.springframework.org/schema/aop&quot;
 xmlns:context=&quot;http://www.springframework.org/schema/context&quot;
 xmlns:jee=&quot;http://www.springframework.org/schema/jee&quot;
 xmlns:tx=&quot;http://www.springframework.org/schema/tx&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xsi:schemaLocation=&quot;http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
 http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd&quot;&gt;
 &lt;!-- 引入属性文件 --&gt;
 &lt;context:property-placeholder location=&quot;classpath*:/application.properties&quot; /&gt;
  
 &lt;context:spring-configured /&gt;
  
 &lt;!-- 注解bean及依赖注入 --&gt;
 &lt;context:component-scan base-package=&quot;com.zmx.ssm&quot;&gt;
 &lt;context:exclude-filter expression=&quot;org.springframework.stereotype.Controller&quot; type=&quot;annotation&quot; /&gt;
 &lt;/context:component-scan&gt;
  
 &lt;!--数源设置--&gt;
 &lt;bean id=&quot;dataSource&quot; class=&quot;org.apache.commons.dbcp2.BasicDataSource&quot;
 destroy-method=&quot;close&quot;&gt;
 &lt;property name=&quot;driverClassName&quot; value=&quot;${db.driverClass}&quot; /&gt;
 &lt;property name=&quot;url&quot; value=&quot;${db.url}&quot; /&gt;
 &lt;property name=&quot;username&quot; value=&quot;${db.username}&quot; /&gt;
 &lt;property name=&quot;password&quot; value=&quot;${db.password}&quot; /&gt;
 &lt;/bean&gt;
  
 &lt;!--sqlSessionFactory--&gt;
 &lt;bean id=&quot;sqlSessionFactory&quot; class=&quot;org.mybatis.spring.SqlSessionFactoryBean&quot;&gt;
 &lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot; /&gt;
 &lt;!--指定了Mybatis配置文件的路径--&gt;
 &lt;property name=&quot;configLocation&quot; value=&quot;classpath:mybatis-config.xml&quot;/&gt;
 &lt;/bean&gt;
  
  
 &lt;bean id=&quot;sqlSession&quot; class=&quot;org.mybatis.spring.SqlSessionTemplate&quot;&gt;
 &lt;constructor-arg index=&quot;0&quot; ref=&quot;sqlSessionFactory&quot; /&gt;
 &lt;/bean&gt;
  
 &lt;!--这一段让我们的MapperInterface能够最终在Spring中生成Bean最后被AutoWired--&gt;
 &lt;bean class=&quot;org.mybatis.spring.mapper.MapperScannerConfigurer&quot;&gt;
 &lt;property name=&quot;basePackage&quot; value=&quot;com.zmx.ssm.**.dao&quot; /&gt;
 &lt;/bean&gt;
  
 &lt;bean id=&quot;transactionManager&quot;
 class=&quot;org.springframework.jdbc.datasource.DataSourceTransactionManager&quot;&gt;
 &lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot; /&gt;
 &lt;/bean&gt;
  
 &lt;!-- 开启注解事务 --&gt;
 &lt;tx:annotation-driven transaction-manager=&quot;transactionManager&quot;/&gt;
 &lt;/beans&gt;
 </pre>
 <p class="html" name="code"><br>
 application.properties</p>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_4_9310348" class="html" name="code" snippet_file_name="blog_20160713_4_9310348" code_snippet_id="1759641">#Mysql settings
 db.url=jdbc:mysql://localhost:3306/ssm
 db.driverClass=com.mysql.jdbc.Driver
 db.username=root
 db.password=0729</pre>
 <p class="html" name="code">&nbsp;</p>
 <h3 class="html" name="code">4、mvc-config.xml</h3>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_5_1992545" class="html" name="code" snippet_file_name="blog_20160713_5_1992545" code_snippet_id="1759641">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
 &lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
 xmlns:mvc=&quot;http://www.springframework.org/schema/mvc&quot; xmlns:context=&quot;http://www.springframework.org/schema/context&quot;
 xmlns:p=&quot;http://www.springframework.org/schema/p&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd&quot;&gt;
  
  
  
 &lt;!--处理对静态资源的访问--&gt;
 &lt;mvc:resources location=&quot;/common/&quot; mapping=&quot;/common/**&quot;/&gt;
 &lt;mvc:resources location=&quot;/images/&quot; mapping=&quot;/images/**&quot; /&gt;
 &lt;mvc:resources location=&quot;/js/&quot; mapping=&quot;/js/**&quot; /&gt;
 &lt;mvc:resources location=&quot;/css/&quot; mapping=&quot;/css/**&quot; /&gt;
 &lt;mvc:resources location=&quot;/styles/&quot; mapping=&quot;/styles/**&quot; /&gt;
 &lt;mvc:resources location=&quot;/htm/&quot; mapping=&quot;/htm/**&quot; /&gt;
  
 &lt;import resource=&quot;view-controller.xml&quot; /&gt;
  
 &lt;context:annotation-config/&gt;
  
 &lt;context:component-scan base-package=&quot;com.zmx.ssm&quot; use-default-filters=&quot;false&quot;&gt;
 &lt;context:include-filter expression=&quot;org.springframework.stereotype.Controller&quot; type=&quot;annotation&quot; /&gt;
 &lt;/context:component-scan&gt;
  
 &lt;!--规定模板文件的类型和位置--&gt;
 &lt;bean id=&quot;velocityConfigurer&quot;
 class=&quot;org.springframework.web.servlet.view.velocity.VelocityConfigurer&quot;&gt;
 &lt;property name=&quot;resourceLoaderPath&quot; value=&quot;templates/&quot; /&gt;
 &lt;property name=&quot;velocityProperties&quot;&gt;
 &lt;props&gt;
 &lt;prop key=&quot;input.encoding&quot;&gt;utf-8&lt;/prop&gt;
 &lt;prop key=&quot;output.encoding&quot;&gt;utf-8&lt;/prop&gt;
 &lt;/props&gt;
 &lt;/property&gt;
 &lt;/bean&gt;
  
 &lt;!--配置附加工具,以及将后缀为vm的文件交给下面的Resolver处理--&gt;
 &lt;bean id=&quot;velocityViewResolver&quot;
 class=&quot;org.springframework.web.servlet.view.velocity.VelocityViewResolver&quot;&gt;
 &lt;property name=&quot;suffix&quot; value=&quot;.vm&quot; /&gt;
 &lt;property name=&quot;contentType&quot; value=&quot;text/html;charset=utf-8&quot; /&gt;
 &lt;property name=&quot;toolboxConfigLocation&quot; value=&quot;/WEB-INF/toolbox.xml&quot;/&gt;
 &lt;/bean&gt;
  
  
 &lt;/beans&gt;
 </pre>
 <p class="html" name="code"><br>
 &nbsp;</p>
 <h4>&nbsp;</h4>
 <h3>5、Mybatis配置:mybatis-config.xml</h3>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_6_7947145" class="html" name="code" snippet_file_name="blog_20160713_6_7947145" code_snippet_id="1759641">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
 &lt;!DOCTYPE configuration PUBLIC &quot;-//mybatis.org//DTD Config 3.0//EN&quot;
 &quot;http://mybatis.org/dtd/mybatis-3-config.dtd&quot;&gt;
 &lt;configuration&gt;
 &lt;typeAliases&gt;
 &lt;package name=&quot;com.zmx.ssm.user.domain&quot;/&gt;
 &lt;/typeAliases&gt;
 &lt;mappers&gt;
 &lt;mapper resource=&quot;mapper/UserMapper.xml&quot; /&gt;
 &lt;mapper resource=&quot;mapper/OrderMapper.xml&quot;/&gt;
 &lt;/mappers&gt;
  
  
 &lt;!--
 &lt;typeAliases&gt;
 &lt;package name=&quot;com.zmx.ssm.user.domain&quot;/&gt;
 &lt;/typeAliases&gt;
 &lt;environments default=&quot;development&quot;&gt;
 &lt;environment id=&quot;development&quot;&gt;
 &lt;transactionManager type=&quot;JDBC&quot;/&gt;
 &lt;dataSource type=&quot;POOLED&quot;&gt;
 &lt;property name=&quot;driver&quot; value=&quot;com.mysql.jdbc.Driver&quot;/&gt;
 &lt;property name=&quot;url&quot; value=&quot;jdbc:mysql://localhost:3306/ssm&quot;/&gt;
 &lt;property name=&quot;username&quot; value=&quot;root&quot;/&gt;
 &lt;property name=&quot;password&quot; value=&quot;0729&quot;/&gt;
 &lt;/dataSource&gt;
 &lt;/environment&gt;
 &lt;/environments&gt;
 &lt;mappers&gt;
 &lt;mapper resource=&quot;mapper/UserMapper.xml&quot;/&gt;
 &lt;mapper resource=&quot;mapper/OrderMapper.xml&quot;/&gt;
 &lt;/mappers&gt;
 --&gt;
  
  
  
 &lt;/configuration&gt; </pre>
 <p class="html" name="code"><br>
 &nbsp;</p>
 <h3><br>
 6、velocity模板引擎:toolbox.xml&nbsp; </h3>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_6_4328437" class="html" name="code" snippet_file_name="blog_20160713_6_4328437" code_snippet_id="1759641">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
 &lt;toolbox&gt;
 &lt;tool&gt;
 &lt;key&gt;date&lt;/key&gt;
 &lt;scope&gt;request&lt;/scope&gt;
 &lt;class&gt;
 org.apache.velocity.tools.generic.DateTool
 &lt;/class&gt;
 &lt;parameter name=&quot;format&quot; value=&quot;yyyy-MM-dd HH:mm:ss&quot;/&gt;
 &lt;/tool&gt;
 &lt;tool&gt;
 &lt;key&gt;link&lt;/key&gt;
 &lt;scope&gt;request&lt;/scope&gt;
 &lt;class&gt;org.apache.velocity.tools.view.tools.LinkTool&lt;/class&gt;
 &lt;/tool&gt;
 &lt;tool&gt;
 &lt;key&gt;stringUtils&lt;/key&gt;
 &lt;scope&gt;request&lt;/scope&gt;
 &lt;class&gt;org.apache.velocity.util.StringUtils&lt;/class&gt;
 &lt;/tool&gt;
 &lt;tool&gt;
 &lt;key&gt;math&lt;/key&gt;
 &lt;scope&gt;application&lt;/scope&gt;
 &lt;class&gt;org.apache.velocity.tools.generic.MathTool&lt;/class&gt;
 &lt;/tool&gt;
 &lt;tool&gt;
 &lt;key&gt;esc&lt;/key&gt;
 &lt;scope&gt;request&lt;/scope&gt;
 &lt;class&gt;org.apache.velocity.tools.generic.EscapeTool&lt;/class&gt;
 &lt;/tool&gt;
 &lt;tool&gt;
 &lt;key&gt;params&lt;/key&gt;
 &lt;scope&gt;request&lt;/scope&gt;
 &lt;class&gt;org.apache.velocity.tools.view.tools.ParameterParser&lt;/class&gt;
 &lt;/tool&gt;
 &lt;/toolbox&gt;
 </pre>
 <h3><br>
 7、实体Bean</h3>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_7_6254253" class="html" name="code" snippet_file_name="blog_20160713_7_6254253" code_snippet_id="1759641">package com.zmx.ssm.user.domain;
  
  
 import java.util.List;
  
 public class User {
 private int id;
 private String account;
 private String password;
 private List&lt;Order&gt; orderList;
  
 public int getId() {
 return id;
 }
 public void setId(int id) {
 this.id = id;
 }
 public String getAccount() {
 return account;
 }
 public void setAccount(String account) {
 this.account = account;
 }
 public String getPassword() {
 return password;
 }
 public void setPassword(String password) {
 this.password = password;
 }
 public List&lt;Order&gt; getOrderList() {
 return orderList;
 }
 public void setOrderList(List&lt;Order&gt; orderList) {
 this.orderList = orderList;
 }
 @Override
 public String toString() {
 return &quot;User [id=&quot; + id + &quot;, account=&quot; + account + &quot;, password=&quot;
 + password + &quot;]&quot;;
 }
  
  
  
  
 }
 </pre>
 <p><br>
 &nbsp;</p>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_8_8413060" class="html" name="code" snippet_file_name="blog_20160713_8_8413060" code_snippet_id="1759641">package com.zmx.ssm.user.domain;
  
 public class Order {
  
 private int id;
 private double price;
 private User user;
  
 public int getId() {
 return id;
 }
 public void setId(int id) {
 this.id = id;
 }
 public double getPrice() {
 return price;
 }
 public void setPrice(double price) {
 this.price = price;
 }
 public User getUser() {
 return user;
 }
 public void setUser(User user) {
 this.user = user;
 }
 @Override
 public String toString() {
 return &quot;Order [id=&quot; + id + &quot;, price=&quot; + price + &quot;]&quot;;
 }
  
  
  
  
 }
 </pre>
 <p><br>
 &nbsp;</p>
 <h3>8、Mybatis映射文件</h3>
 <p>UserMapper.xml</p>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_10_8568027" class="html" name="code" snippet_file_name="blog_20160713_10_8568027" code_snippet_id="1759641">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
 &lt;!DOCTYPE mapper
 PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
 &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot;&gt;
  
 &lt;mapper namespace=&quot;com.zmx.ssm.user.domain.User&quot;&gt;
  
 &lt;resultMap id=&quot;userResultMap&quot; type=&quot;com.zmx.ssm.user.domain.User&quot; &gt;
 &lt;id column=&quot;u_id&quot; property=&quot;id&quot;/&gt;
 &lt;result column=&quot;account&quot; property=&quot;account&quot;/&gt;
 &lt;result column=&quot;password&quot; property=&quot;password&quot;/&gt;
 &lt;collection property=&quot;orderList&quot; javaType=&quot;ArrayList&quot; ofType=&quot;com.zmx.ssm.user.domain.Order&quot; column=&quot;u_id&quot;&gt;
 &lt;id column=&quot;o_id&quot; property=&quot;id&quot;/&gt;
 &lt;result column=&quot;price&quot; property=&quot;price&quot;/&gt;
 &lt;/collection&gt;
  
 &lt;/resultMap&gt;
  
 &lt;select id=&quot;selectUserFetchOrder&quot; parameterType=&quot;int&quot; resultMap=&quot;userResultMap&quot; &gt;
 select u.*, o.* from t_user u, t_order o where o.u_id=u.u_id and u.u_id=#{id}
 &lt;/select&gt;
  
 &lt;insert id=&quot;addUser&quot; parameterType=&quot;User&quot;&gt;
 insert into t_user(u_id, account, password) values(#{id}, #{account}, #{password})
 &lt;/insert&gt;
  
  
 &lt;/mapper&gt;</pre>
 <p class="html" name="code"><br>
 &nbsp;</p>
 <p>OrderMapper.xml</p>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_10_4018215" class="html" name="code" snippet_file_name="blog_20160713_10_4018215" code_snippet_id="1759641">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
 &lt;!DOCTYPE mapper
 PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
 &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot;&gt;
  
 &lt;mapper namespace=&quot;com.zmx.ssm.user.domain.Order&quot; &gt;
 &lt;resultMap id=&quot;orderResultMap&quot; type=&quot;com.zmx.ssm.user.domain.Order&quot; &gt;
 &lt;id column=&quot;o_id&quot; property=&quot;id&quot;/&gt;
 &lt;result column=&quot;price&quot; property=&quot;price&quot;/&gt;
 &lt;association property=&quot;user&quot; javaType=&quot;com.zmx.ssm.user.domain.User&quot; column=&quot;u_id&quot;&gt;
 &lt;id column=&quot;u_id&quot; property=&quot;id&quot;/&gt;
 &lt;result column=&quot;account&quot; property=&quot;account&quot;/&gt;
 &lt;result column=&quot;password&quot; property=&quot;password&quot;/&gt;
 &lt;/association&gt;
 &lt;/resultMap&gt;
  
 &lt;select id=&quot;selectOrderFetchUser&quot; parameterType=&quot;int&quot; resultMap=&quot;orderResultMap&quot;&gt;
 select u.*,o.* from t_user u, t_order o where o.u_id=u.u_id and o.o_id=#{id}
 &lt;/select&gt;
  
 &lt;/mapper&gt;</pre>
 <p><br>
 &nbsp;</p>
 <h3>9、UserDao.java</h3>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_12_9505335" class="html" name="code" snippet_file_name="blog_20160713_12_9505335" code_snippet_id="1759641">package com.zmx.ssm.user.dao;
  
 import javax.annotation.Resource;
  
 import org.mybatis.spring.SqlSessionTemplate;
 import org.springframework.stereotype.Repository;
  
 import com.zmx.ssm.user.domain.User;
  
 @Repository
 public class UserDao {
 @Resource(name=&quot;sqlSession&quot;)
 private SqlSessionTemplate sqlSession;
  
 public void addUser(User user) {
  
 sqlSession.insert(&quot;addUser&quot;,user);
 }
  
 }
 </pre>
 <p><br>
 &nbsp;</p>
 <p>&nbsp;</p>
 <h3>10、使用Spring-test测试</h3>
 <pre code_snippet_id="1759641" snippet_file_name="blog_20160713_13_6855377" class="html" name="code" snippet_file_name="blog_20160713_13_6855377" code_snippet_id="1759641">package test.com.zmx.ssm.user;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 import org.springframework.test.context.transaction.TransactionConfiguration;
 import org.springframework.transaction.annotation.Transactional;
  
 import com.zmx.ssm.user.dao.UserDao;
 import com.zmx.ssm.user.domain.User;
  
  
  
 @RunWith(SpringJUnit4ClassRunner.class)
 @ContextConfiguration(locations={&quot;classpath:applicationContext.xml&quot;})
 @TransactionConfiguration(transactionManager=&quot;transactionManager&quot;,defaultRollback=false)
 @Transactional
 public class UserDaoTest {
  
 @Autowired
 private UserDao userDao;
  
 @Test
 public void testInsert() {
 User user=new User();
 user.setId(3);
 user.setAccount(&quot;manager&quot;);
 user.setPassword(&quot;123456&quot;);
 userDao.addUser(user);
 }
  
  
 }
 </pre>
 <p><br>
 &nbsp;</p>
 <p>&nbsp;</p>
 <h3>11、小结</h3>
 <p>Spring常用的注解主要有以下几种:</p>
 <ul>
 <li>@Component</li><li>@Service--业务层</li><li>@Respority--持久化层</li><li>@Controller--视图层</li></ul>
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 尽管这几种注解对应的意义不一样,但它们都有一个共同的作用,那就是让Spring找到并且最终生成对应的Bean。举个例子,我们在Service中使用接口UserDAO,但该接口的实例我们并没有指定使用哪一个,虽然我们写了对应的Impl Class。 通过注解生成Bean,Spring就能够在Service调用该接口的时候从容器里得到正确的实体对象。</p>
 <p>&nbsp;</p>
 <h4><br>
 <br>
 <br>
 </h4>
 <p>&nbsp;</p>
  
 </div>
  
  
  
  
 <!-- Baidu Button BEGIN -->
  
  
  
  
 <div class="bdsharebuttonbox tracking-ad" style="float: right;" data-mod="popu_172">
 <a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important"></a>
 <a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间" style="background-position:0 -52px !important"></a>
 <a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"style="background-position:0 -104px !important"></a>
 <a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"style="background-position:0 -260px !important"></a>
 <a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网"style="background-position:0 -208px !important"></a>
 <a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"style="background-position:0 -1612px !important" ></a>
 </div>
 <script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script>
 <!-- Baidu Button END -->
  
  
  
  
 <!--172.16.140.12-->
  
 <!-- Baidu Button BEGIN -->
 <script type="text/javascript" id="bdshare_js" data="type=tools&amp;uid=1536434" ></script>
 <script type="text/javascript" id="bdshell_js"></script>
 <script type="text/javascript">
 document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
 </script>
 <!-- Baidu Button END -->
  
  
  
  
  
  
 <div id="digg" ArticleId="51895826" >
 <dl id="btnDigg" class="digg digg_enable" onclick="btndigga();">
  
 <dt></dt>
 <dd>0</dd>
 </dl>
  
  
 <dl id="btnBury" class="digg digg_enable" onclick="btnburya();">
  
 <dt></dt>
 <dd>0</dd>
 </dl>
  
 </div>
 <div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" >&nbsp;</a> </div>
 <div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" >&nbsp;</a></div>
 <script type="text/javascript">
 function btndigga() {
 $(".tracking-ad[data-mod='popu_222'] a").click();
 }
 function btnburya() {
 $(".tracking-ad[data-mod='popu_223'] a").click();
 }
 </script>
  
 <ul class="article_next_prev">
 <li class="prev_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='/zmx729618/article/details/51890668';">上一篇</span><a href="/zmx729618/article/details/51890668" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">Java使用Jacob转换Word为HTML</a></li>
 <li class="next_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='/zmx729618/article/details/51899231';">下一篇</span><a href="/zmx729618/article/details/51899231" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">MyBatis一对多和多对一</a></li>
 </ul>
  
 <div style="clear:both; height:10px;"></div>
  
  
 <div class="similar_article" >
 <h4></h4>
 <div class="similar_c"style="margin:20px 0px 0px 0px">
 <div class="similar_c_t">
 &nbsp;&nbsp;相关文章推荐
 </div>
  
 <div class="similar_wrap tracking-ad" data-mod="popu_36" style="max-height:195px;">
 <ul class="similar_list fl">
 <li>
 <em></em>
 <a href="http://blog.csdn.net/iTservlet/article/details/53534371" title="Spring ,Springmvc,mybatis三大框架整合的配置文件支持" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">Spring ,Springmvc,mybatis三大框架整合的配置文件支持</a>
 </li>
 <li>
 <em></em>
 <a href="http://himo-zhang.iteye.com/blog/2177921" title=" SSM框架——详细整合教程(Spring+SpringMVC+MyBatis) " strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;"> SSM框架——详细整合教程(Spring+SpringMVC+MyBatis) </a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/qq_16055765/article/details/51690137" title="SSM(spring+mybatis+springmvc)整合 配置文件" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">SSM(spring+mybatis+springmvc)整合 配置文件</a>
 </li>
 <li>
 <em></em>
 <a href="http://shaohan126448.iteye.com/blog/2033550" title="springmvc+spring+mybatis整合实例" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">springmvc+spring+mybatis整合实例</a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/qq_30641447/article/details/51555849" title="springmvc+spring+mybatis整合的配置" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">springmvc+spring+mybatis整合的配置</a>
 </li>
 </ul>
 <ul class="similar_list fr">
 <li>
 <em></em>
 <a href="http://blog.csdn.net/brave_xz411/article/details/72935064" title="SSM(Spring,SpringMVC,Mybatis)项目整合配置与应用" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">SSM(Spring,SpringMVC,Mybatis)项目整合配置与应用</a>
 </li>
 <li>
 <em></em>
 <a href="http://fanjf.iteye.com/blog/1457355" title="MyBatis3整合Spring3、SpringMVC3" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">MyBatis3整合Spring3、SpringMVC3</a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/mingliangniwo/article/details/42968545" title="javaWeb项目SpringMVC3.2.1与Mybatis3.0.4整合实例(Mybaits-spring配置文件的几种方式)之一SqlSessionDaoSupport方式" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">javaWeb项目SpringMVC3.2.1与Mybatis3.0.4整合实例(Mybaits-spring配置文件的几种方式)之一SqlSessionDaoSupport方式</a>
 </li>
 <li>
 <em></em>
 <a href="http://20386053.iteye.com/blog/1992214" title="Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法</a>
 </li>
 <li>
 <em></em>
 <a href="http://blog.csdn.net/qq_33913037/article/details/53465944" title="SSM整合配置文件(Springmvc+Spring+Mybatis)" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">SSM整合配置文件(Springmvc+Spring+Mybatis)</a>
 </li>
 </ul>
 </div>
 </div>
 </div>
  
 </div>
  
 <div>
  
  
 <script type="text/javascript">
 /*博客内容页下方Banner1-728*90,创建于2016-12-13*/
 var cpro_id = "u2843949";
 </script>
 <script type="text/javascript" src="http://cpro.baidustatic.com/cpro/ui/c.js"></script>
  
 </div>
  
 <div id="suggest"></div>
 <script language="javascript" type='text/javascript'>
 $(function(){
 $.get("/zmx729618/svc/GetSuggestContent/51895826",function(data){
 $("#suggest").html(data);
 });
 });
 </script>
  
  
 <style>
 .blog-ass-articl dd {
 color: #369;
 width: 99%; /*修改行*/
 float: left;
 overflow: hidden;
 font: normal normal 12px/23px "SimSun";
 height: 23px;
 margin: 0;
 padding: 0 0 0 10px;
 margin-right: 30px;
 background: url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;
 }
 </style>
  
  
  
  
  
 <dl class="blog-ass-articl tracking-ad" id="res-relatived" data-mod="popu_84" >
 <dt><span>猜你在找</span></dt>
  
  
  
  
  
 <dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;">
 <a href="http://edu.csdn.net/huiyiCourse/detail/422?ref=blog&amp;loc=r1" title="深度学习基础与TensorFlow实践" strategy="undefined" target="_blank">深度学习基础与TensorFlow实践</a>
 </dd>
 <dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;">
 <a href="http://edu.csdn.net/huiyiCourse/series_detail/43?ref=blog&amp;loc=r1" title="【在线峰会】前端开发重点难点技术剖析与创新实践" strategy="undefined" target="_blank">【在线峰会】前端开发重点难点技术剖析与创新实践</a>
 </dd>
 <dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;">
 <a href="http://edu.csdn.net/huiyiCourse/series_detail/42?ref=blog&amp;loc=r1" title="【在线峰会】一天掌握物联网全栈开发之道" strategy="undefined" target="_blank">【在线峰会】一天掌握物联网全栈开发之道</a>
 </dd>
 <dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;">
 <a href="http://edu.csdn.net/huiyiCourse/series_detail/41?ref=blog&amp;loc=r1" title="【在线峰会】如何高质高效的进行Android技术开发" strategy="undefined" target="_blank">【在线峰会】如何高质高效的进行Android技术开发</a>
 </dd>
 <dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;">
 <a href="http://edu.csdn.net/huiyiCourse/detail/404?ref=blog&amp;loc=r1" title="机器学习40天精英计划" strategy="undefined" target="_blank">机器学习40天精英计划</a>
 </dd>
 <dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;">
 <a href="http://edu.csdn.net/huiyiCourse/detail/402?ref=blog&amp;loc=r1" title="Python数据挖掘与分析速成班" strategy="undefined" target="_blank">Python数据挖掘与分析速成班</a>
 </dd>
 <dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;">
 <a href="http://edu.csdn.net/course/detail/3011?ref=blog&amp;loc=r1" title="微信小程序开发实战" strategy="undefined" target="_blank">微信小程序开发实战</a>
 </dd>
 <dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;">
 <a href="http://edu.csdn.net/course/detail/1968?ref=blog&amp;loc=r1" title="JFinal极速开发企业实战" strategy="undefined" target="_blank">JFinal极速开发企业实战</a>
 </dd>
 <dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;">
 <a href="http://edu.csdn.net/combo/detail/23?ref=blog&amp;loc=r1" title="备战2017软考 系统集成项目管理工程师 学习套餐" strategy="undefined" target="_blank">备战2017软考 系统集成项目管理工程师 学习套餐</a>
 </dd>
 <dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;">
 <a href="http://edu.csdn.net/course/detail/3338?ref=blog&amp;loc=r1" title="Python大型网络爬虫项目开发实战(全套)" strategy="undefined" target="_blank">Python大型网络爬虫项目开发实战(全套)</a>
 </dd>
  
  
  
  
  
 </dl>
  
  
  
  
  
 <div id="ad_cen">
 <div>
 <script type="text/javascript">
 /*博客内容页下方Banner-728*90,创建于2014-7-3*/
 var cpro_id = "u1607657";
 </script>
 <script type="text/javascript" src="http://cpro.baidustatic.com/cpro/ui/c.js"></script>
 </div>
 </div>
  
 <!-- 广告位开始 -->
 <!-- 广告位结束 -->
  
  
 <div class="comment_class">
 <div id="comment_title" class="panel_head">
 <span class="see_comment">查看评论</span><a name="comments"></a></div>
 <div id="comment_list">
 </div>
 <div id="comment_bar">
 </div>
 <div id="comment_form">
 </div>
 <div class="announce">
 * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场<a name="reply"></a><a name="quote"></a></div>
 </div>
  
 <script type="text/javascript">
 var fileName = '51895826';
 var commentscount = 0;
 var islock = false
 </script>
  
 <div id="ad_bot">
 </div>
 <div id="report_dialog">
 </div>
  
 <div id="d-top" style="bottom:60px;">
  
 <a id="quick-reply" class="btn btn-top q-reply" title="快速回复" style="display:none;">
 <img src="http://static.blog.csdn.net/images/blog-icon-reply.png" alt="快速回复">
 </a>
 <a id="d-top-a" class="btn btn-top backtop" style="display: none;" title="返回顶部" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_huidaodingbu'])" style="">
 <img src="http://static.blog.csdn.net/images/top.png" alt="TOP">
 </a>
 </div>
 <script type="text/javascript">
 $(function ()
 {
 $("#ad_frm_0").height("90px");
  
 setTimeout(function(){
 $("#ad_frm_2").height("200px");
 },1000);
 });
  
 </script>
 <style type="text/css">
 .tag_list
 {
 background: none repeat scroll 0 0 #FFFFFF;
 border: 1px solid #D7CBC1;
 color: #000000;
 font-size: 12px;
 line-height: 20px;
 list-style: none outside none;
 margin: 10px 2% 0 1%;
 padding: 1px;
 }
 .tag_list h5
 {
 background: none repeat scroll 0 0 #E0DBD3;
 color: #47381C;
 font-size: 12px;
 height: 24px;
 line-height: 24px;
 padding: 0 5px;
 margin: 0;
 }
 .tag_list h5 a
 {
 color: #47381C;
 }
 .classify
 {
 margin: 10px 0;
 padding: 4px 12px 8px;
 }
 .classify a
 {
 margin-right: 20px;
 white-space: nowrap;
 }
 </style>
  
  
  
  
  
 <div id="pop_win" style="display:none ;position: absolute; z-index: 10000; border: 1px solid rgb(220, 220, 220); top: 222.5px; left: 630px; opacity: 1; background: none 0px 0px repeat scroll rgb(255, 255, 255);">
  
 </div>
 <div id="popup_mask"></div>
 <style>
 #popup_mask
 {
 position: absolute;
 width: 100%;
 height: 100%;
 background: #000;
 z-index: 9999;
 left: 0px;
 top: 0px;
 opacity: 0.3;
 filter: alpha(opacity=30);
 display: none;
 }
  
 </style>
  
  
  
  
 <script type="text/javascript">
 $(function(){
  
 setTimeout(function(){
 $(".comment_body:contains('回复')").each(function(index,item){
 var u=$(this).text().split(':')[0].toString().replace("回复","")
 var thisComment=$(this);
 if(u)
 {
 $.getJSON("https://passport.csdn.net/get/nick?callback=?", {users: u}, function(a) {
 if(a!=null&&a.data!=null&&a.data.length>0)
 {
 nick=a.data[0].n;
 if(u!=nick)
 {
 thisComment.text(thisComment.text().replace(u,nick));
 }
 }
 });
 }
 });
  
 },200);
  
 setTimeout(function(){
 $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
 },5000);
  
 setTimeout(function(){
 $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
 },10000);
  
 setTimeout(function(){
 $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
 },15000);
  
 setTimeout(function(){
 $("a img[src='http://js.tongji.linezing.com/stats.gif']").parent().css({"position":"absolute","left":"50%"});
 },300);
 });
  
 function loginbox(){
 var $logpop=$("#pop_win");
 $logpop.html('<iframe src="https://passport.csdn.net/account/loginbox?service=http://static.blog.csdn.net/callback.htm" frameborder="0" height="600" width="400" scrolling="no"></iframe>');
  
 $('#popup_mask').css({
 opacity: 0.5,
 width: $( document ).width() + 'px',
 height: $( document ).height() + 'px'
 });
 $('#popup_mask').css("display","block");
  
 $logpop.css( {
 top: ($( window ).height() - $logpop.height())/ 2 + $( window
 ).scrollTop() + 'px',
 left:($( window ).width() - $logpop.width())/ 2
 } );
  
 setTimeout( function () {
 $logpop.show();
 $logpop.css( {
 opacity: 1
 } );
 }, 200 );
  
 $('#popup_mask').unbind("click");
 $('#popup_mask').bind("click", function(){
 $('#popup_mask').hide();
 var $clopop = $("#pop_win");
 $("#common_ask_div_sc").css("display","none");
 $clopop.css( {
 opacity: 0
 } );
 setTimeout( function () {
 $clopop.hide();
 }, 350 );
 return false;
 });
 }
  
 var articletitle='SpringMVC+Spring+Mybatis整合配置';
  
 </script>
  
  
  
  
  
  
  
  
 <div class="clear">
 </div>
 </div>
  
 </div>
  
 <div id="side">
  
 <div class="side">
 <div id="panel_Profile" class="panel">
 <ul class="panel_head"><span>个人资料</span></ul>
 <ul class="panel_body profile">
 <div id="blog_userface">
 <a href="http://my.csdn.net/zmx729618" target="_blank">
 <img src="http://avatar.csdn.net/9/B/D/1_zmx729618.jpg" title="访问我的空间" style="max-width:90%"/>
 </a>
 <br />
 <span><a href="http://my.csdn.net/zmx729618" class="user_name" target="_blank">zmx729618</a></span>
 </div>
 <div class="interact">
  
 <a href="javascript:void(0);" class="attent" id="span_add_follow" title="[加关注]"></a>
  
 <a href="javascript:void(0);" class="letter" title="[发私信]" onclick="window.open('http://msg.csdn.net/letters/model?receiver=zmx729618','_blank','height=350,width=700');_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_sixin'])"></a>
 </div>
 <div id="blog_medal">
 <div id="bms_box">
 <a target="_blank">
 <img src="http://c.csdnimg.cn/jifen/images/xunzhang/xunzhang/chizhiyiheng.png" onmouseover="m_over_m(this,4)" onmouseout="m_out_m()" alt="1" >
 </a>
 </div>
 </div>
 <ul id="blog_rank">
 <li>访问:<span>684544次</span></li>
 <li>积分:<span>9237</span> </li>
 <li >等级: <span style="position:relative;display:inline-block;z-index:1" >
 <img src="http://c.csdnimg.cn/jifen/images/xunzhang/jianzhang/blog6.png" alt="" style="vertical-align: middle;" id="leveImg">
 <div id="smallTittle" style=" position: absolute; left: -24px; top: 25px; text-align: center; width: 101px; height: 32px; background-color: #fff; line-height: 32px; border: 2px #DDDDDD solid; box-shadow: 0px 2px 2px rgba (0,0,0,0.1); display: none; z-index: 999;">
 <div style="left: 42%; top: -8px; position: absolute; width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 8px solid #EAEAEA;"></div>
 积分:9237 </div>
 </span> </li>
 <li>排名:<span>第1861名</span></li>
 </ul>
 <ul id="blog_statistics">
 <li>原创:<span>138篇</span></li>
 <li>转载:<span>757篇</span></li>
 <li>译文:<span>31篇</span></li>
 <li>评论:<span>86条</span></li>
 </ul>
 </ul>
 </div>
  
  
 <div class="panel" id="panel_Search">
 <ul class="panel_head"><span>文章搜索</span></ul>
 <ul class="panel_body" class="form_search">
 <form id="frmSearch" action="http://so.csdn.net/search" class="form_search csdn-tracking-statistics" target="_blank" data-mod="popu_306">
 <span><input id="inputSearch" type="text" class="blogsearch" title="请输入关键字" /></span>
 <input id="btnSubmit" type="button" value="搜索" title="search in blog" />
 <input type="hidden" name="q" id="inputQ" />
 <input type="hidden" name="t" value="blog" />
 <a id="btnSearchBlog" target="_blank"></a>
 </form>
 </ul>
 </div>
  
 <script type="text/javascript">
  
  
 $(function () {
 $("#btnSubmit").unbind("click");
 $("#btnSubmit").click(function () {
 search();
 });
  
 $("#frmSearch").submit(function () {
 search();
 return false;
 });
  
 function search()
 {
 if ($("#inputSearch").val() == "") {
 alert("请录入搜索关键词!");
 return false;
 }
 //var url = "http://so.csdn.net/so/search/s.do?q=" + encodeURIComponent($("#inputSearch").val()) + "&u=" + username + "&t=blog";
 var url = "https://www.baidu.com/s?wd=" + encodeURIComponent($("#inputSearch").val()) + "%20site%3Ablog.csdn.net"
 window.location.href = url;
 }
 });
 </script><div id="panel_Category" class="panel">
 <ul class="panel_head"><span>文章分类</span></ul>
 <ul class="panel_body">
 <li>
 <a href="/zmx729618/article/category/3108443" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Java</a><span>(126)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/3108441" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">数据库</a><span>(43)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/5724253" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">数据挖掘算法与原理</a><span>(6)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/5735287" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Grails</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/5766023" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">性能优化</a><span>(8)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/5767211" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">前台UI</a><span>(8)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6129208" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">JVM调优</a><span>(22)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6129610" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">杂谈</a><span>(4)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6151863" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">JAXB2</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6156941" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Javascript</a><span>(10)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6158933" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">IDE使用</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6160388" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">CSS</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6162319" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Jquery</a><span>(11)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6168785" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">图形/Highchart</a><span>(4)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6168885" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Spring</a><span>(27)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6169221" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Junit</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6169359" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">JTA</a><span>(7)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6169561" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Javamail</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6170787" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">JMS-ActiveMQ</a><span>(14)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6172648" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Quartz/任务调度</a><span>(10)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6173384" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">SpringSecurity</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6177525" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">JavaUtil工具类</a><span>(22)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6177696" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Java内省/反射</a><span>(9)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6178030" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">类加载器ClassLoader</a><span>(5)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6179246" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Java序列化</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6179616" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Java克隆</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6181602" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Java并发编程</a><span>(56)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6185096" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">算法/排序</a><span>(4)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6190018" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">正则表达式</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6191435" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Http/HttpURLConnection</a><span>(23)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6192897" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">I18N</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6193126" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">JNI</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6193394" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">POI/JXLS/JXL</a><span>(13)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6193527" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">动态代理</a><span>(4)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6194895" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">JNDI</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6197661" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">JSON/JSONP</a><span>(13)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6201064" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Weblogic</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6201133" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Js/JQuery插件</a><span>(13)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6204432" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Log4j/Log4j2</a><span>(7)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6206615" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">JPA/Hibernate</a><span>(27)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6213269" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">事务</a><span>(6)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6215365" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Restful</a><span>(13)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6220066" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">WebService</a><span>(6)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6220621" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Eclipse/MyEclipse</a><span>(6)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6220731" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">exe4j</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6221899" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Session/Cookie</a><span>(5)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6223467" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">加密/解密</a><span>(10)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6223946" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Java Socket</a><span>(4)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6225091" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">编码/解码</a><span>(12)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6225640" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Linux</a><span>(12)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6225715" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Tomcat</a><span>(10)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6227151" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Servlet/JSP</a><span>(19)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6238076" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Android</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6243603" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">PHP</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6244493" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">单点登录CAS</a><span>(10)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6246650" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">设计模式</a><span>(10)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6248665" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">SpringMVC</a><span>(51)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6255075" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Nginx/负载均衡</a><span>(7)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6256762" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Maven</a><span>(6)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6256920" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Comet/Pushlet</a><span>(8)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6264424" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">数据结构与算法</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6271670" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Cache</a><span>(4)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6292594" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">HttpClient</a><span>(8)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6293253" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">断点续传</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6295981" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">EJB</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6296951" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">文件预览</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6297072" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">BIO/NIO/AIO</a><span>(22)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6300359" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">JSTL</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6305745" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Spring-Data-JPA</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6305856" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">EL</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6305987" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">DOM4J</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6306113" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">文件上传/下载</a><span>(9)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6309398" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Mybatis</a><span>(7)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6313680" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Ajax</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6319580" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Mongodb</a><span>(13)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6319651" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">图像处理</a><span>(5)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6347494" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">UML</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6347779" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Logback</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6348551" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">WEB安全</a><span>(5)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6349570" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">验证码</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6349763" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">短信猫</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6350019" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">压缩解压</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6350199" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">bat批处理</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6350581" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">RMI</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6354054" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Valid</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6354188" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">java注解</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6354302" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">ITEXT</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6354411" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">IDEA</a><span>(7)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6354798" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Java异常处理</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6355064" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Java泛型</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6355178" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">OSGI</a><span>(8)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6356217" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Gradle</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6356796" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Groovy</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6357082" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">WebSocket</a><span>(5)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6358095" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Git</a><span>(5)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6421973" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">单元测试工具</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6422060" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Java GC</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6430276" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Redis</a><span>(11)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6441288" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Hessian</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6441555" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">mysql</a><span>(25)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6443117" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">微信开发</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6451404" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">rpc</a><span>(4)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6443229" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Zookeeper</a><span>(30)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6452458" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Hadoop</a><span>(16)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6452147" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">HBase</a><span>(12)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6452148" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Hive</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6457295" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">sqoop</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6453114" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">原子变量</a><span>(7)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6455490" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Spring-Boot</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6462774" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Freemarker</a><span>(4)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6467315" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">node.js</a><span>(5)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6467432" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Drools</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6468351" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">ZXing</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6483033" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Lucene</a><span>(5)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6485400" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Jsoup</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6496024" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">html5</a><span>(5)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6497823" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">thrift</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6502045" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Protobuf</a><span>(6)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6499288" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">ReactJS</a><span>(4)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6499854" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">AngularJS</a><span>(11)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6503674" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">TestNG</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6513471" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">web架构</a><span>(7)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6522714" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Dubbo</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6522765" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Jetty</a><span>(7)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6532085" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Jacob</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6533778" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">SPI</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6545841" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">技术实现</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6546904" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">solr</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6738206" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">LBS/地理位置服务</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6814425" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">SVN</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6822067" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Docker</a><span>(5)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6823350" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">AI/机器学习</a><span>(4)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6937856" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">自动化测试</a><span>(1)</span>
 </li>
 <li>
 <a href="/zmx729618/article/category/6979604" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Spark</a><span>(4)</span>
 </li>
 </ul>
 </div><div id="panel_Archive" class="panel">
 <ul class="panel_head"><span>文章存档</span></ul>
 <ul class="panel_body">
 <div id="archive_list">
 <!--归档统计-->
 <li><a href="/zmx729618/article/month/2017/06">2017年06月</a><span>(22)</span></li><li><a href="/zmx729618/article/month/2017/05">2017年05月</a><span>(28)</span></li><li><a href="/zmx729618/article/month/2017/04">2017年04月</a><span>(25)</span></li><li><a href="/zmx729618/article/month/2017/03">2017年03月</a><span>(48)</span></li><li><a href="/zmx729618/article/month/2017/02">2017年02月</a><span>(39)</span></li><li><a href="/zmx729618/article/month/2017/01">2017年01月</a><span>(53)</span></li><li><a href="/zmx729618/article/month/2016/12">2016年12月</a><span>(3)</span></li><li><a href="/zmx729618/article/month/2016/11">2016年11月</a><span>(96)</span></li><li><a href="/zmx729618/article/month/2016/10">2016年10月</a><span>(74)</span></li><li><a href="/zmx729618/article/month/2016/09">2016年09月</a><span>(39)</span></li><li><a href="/zmx729618/article/month/2016/08">2016年08月</a><span>(64)</span></li><li><a href="/zmx729618/article/month/2016/07">2016年07月</a><span>(71)</span></li><li><a href="/zmx729618/article/month/2016/06">2016年06月</a><span>(57)</span></li><li><a href="/zmx729618/article/month/2016/05">2016年05月</a><span>(154)</span></li><li><a href="/zmx729618/article/month/2016/04">2016年04月</a><span>(132)</span></li><li><a href="/zmx729618/article/month/2016/03">2016年03月</a><span>(14)</span></li><li><a href="/zmx729618/article/month/2016/01">2016年01月</a><span>(2)</span></li><li><a href="/zmx729618/article/month/2015/11">2015年11月</a><span>(3)</span></li><li><a href="/zmx729618/article/month/2015/09">2015年09月</a><span>(3)</span></li><li><a href="/zmx729618/article/month/2015/08">2015年08月</a><span>(16)</span></li><li><a href="/zmx729618/article/month/2015/06">2015年06月</a><span>(2)</span></li><li><a href="/zmx729618/article/month/2015/04">2015年04月</a><span>(2)</span></li><li><a href="/zmx729618/article/month/2014/01">2014年01月</a><span>(1)</span></li>
 </div>
 </ul>
 </div>
 <div id="hotarticls" class="panel">
 <ul class="panel_head">
 <span>
 阅读排行 </span>
 </ul>
  
 <ul class="panel_body itemlist">
 <li>
 <a href="/zmx729618/article/details/51096593" title="Spring security实现权限管理">Spring security实现权限管理</a><span>(36987)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/45059805" title="关于数据库建模,概念模型、逻辑模型、物理模型的区别和转化">关于数据库建模,概念模型、逻辑模型、物理模型的区别和转化</a><span>(16210)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51554231" title="SpringMVC之后台接收参数与前台传递数据">SpringMVC之后台接收参数与前台传递数据</a><span>(13081)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51395979" title="从HttpServletRequest获取各种路径总结">从HttpServletRequest获取各种路径总结</a><span>(11080)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51144588" title="Java绝对/相对路径获取与getResourceAsStream()方法">Java绝对/相对路径获取与getResourceAsStream()方法</a><span>(9428)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51566987" title="使用Nexus搭建Maven代理仓库">使用Nexus搭建Maven代理仓库</a><span>(9074)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51516744" title="让技术人员看得懂的面向对象设计流程">让技术人员看得懂的面向对象设计流程</a><span>(8946)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51242966" title="JQuery Marquee插件(无缝滚动效果)- marquee.js">JQuery Marquee插件(无缝滚动效果)- marquee.js</a><span>(6889)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/52161069" title="Java下利用Jackson进行JSON解析和序列化">Java下利用Jackson进行JSON解析和序列化</a><span>(6381)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51909604" title="Spring整合MyBatis错误:org.apache.ibatis.binding.BindingException">Spring整合MyBatis错误:org.apache.ibatis.binding.BindingException</a><span>(6310)</span>
 </li>
 </ul>
 </div>
 <div id="hotarticls2" class="panel">
 <ul class="panel_head"><span>评论排行</span></ul>
 <ul class="panel_body itemlist">
 <li>
 <a href="/zmx729618/article/details/51096593" title="Spring security实现权限管理">Spring security实现权限管理</a><span>(21)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51881084" title="springMVC是实现前台带进度条文件上传">springMVC是实现前台带进度条文件上传</a><span>(17)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51453792" title="ThreadPoolExecutor运转机制及BlockingQueue详解">ThreadPoolExecutor运转机制及BlockingQueue详解</a><span>(5)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51942220" title="服务器推送技术原理分析及dwr框架简单的使用">服务器推送技术原理分析及dwr框架简单的使用</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51858884" title="Java NIO之Selector的使用">Java NIO之Selector的使用</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/54378259" title="JAVA实现长连接(含心跳检测)Demo">JAVA实现长连接(含心跳检测)Demo</a><span>(3)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51372694" title="HttpsURLConnection实现SSL的GET/POST请求">HttpsURLConnection实现SSL的GET/POST请求</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51766641" title="Java之HashCode值改变引起Hashset造成的内存泄露">Java之HashCode值改变引起Hashset造成的内存泄露</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51801958" title="HttpClient模仿登陆并维持同一session请求(HttpClient4.3.X以上版本)">HttpClient模仿登陆并维持同一session请求(HttpClient4.3.X以上版本)</a><span>(2)</span>
 </li>
 <li>
 <a href="/zmx729618/article/details/51437929" title="Spring3整合Quartz2实现定时任务及动态任务调整(添加删除暂停恢复)--推荐">Spring3整合Quartz2实现定时任务及动态任务调整(添加删除暂停恢复)--推荐</a><span>(2)</span>
 </li>
 </ul>
 </div>
 <div id="homepageArticles" class="panel tracking-ad" data-mod="popu_4">
 <ul class="panel_head"><span>推荐文章</span></ul>
 <ul class="panel_body" id="ad_commend">
 <ul>
 <li><a href="http://blog.csdn.net/blogdevteam/article/details/73740215" target="_blank">* CSDN日报20170626——《我的程序探险之旅》</a></li>
 <li><a href="http://blog.csdn.net/pistolove/article/details/73610588"
 target="_blank">* 【Java高级开发工程师】近一个月的面试总结</a></li>
 <li><a href="http://blog.csdn.net/reboot123/article/details/73266776"target="_blank">* 一个文科生的工程师之路</a></li>
 <li><a href="http://blog.csdn.net/lqw_student/article/details/73646768"
 target="_blank">* JavaWeb 与 MySQL 人鬼情未了</a></li>
 <li><a href="http://blog.csdn.net/totond/article/details/73648103"
 target="_blank">* PermissionsDispatcher、RxPermissions和easypermissions的使用和对比</a></li>
 <li><a href="http://blog.csdn.net/broadview2006/article/details/73550412"
 target="_blank">* 每周荐书:架构、Scratch、增长黑客(评论送书)</a></li>
  
 </ul></ul>
 </div>
  
  
 <div id="newcomments" class="panel">
 <ul class="panel_head"><span>最新评论</span></ul>
 <ul class="panel_body itemlist">
 <li>
  
 <a href="/zmx729618/article/details/51881084#comments">springMVC是实现前台带进度条文件上传</a>
 <p style="margin:0px;"><a href="/zmx729618" class="user_name">zmx729618</a>:
 @hengliang_:可以bebug看一下 后台上传数据大小是不是变动了
 </p>
 </li>
 <li>
  
 <a href="/zmx729618/article/details/51881084#comments">springMVC是实现前台带进度条文件上传</a>
 <p style="margin:0px;"><a href="/hengliang_" class="user_name">hengliang_</a>:
 您好!我可以上传成功,但是进度条没有变化
 </p>
 </li>
 <li>
  
 <a href="/zmx729618/article/details/51395979#comments">从HttpServletRequest获取各种路径总结</a>
 <p style="margin:0px;"><a href="/zmx729618" class="user_name">zmx729618</a>:
 @xinxixueyuan110:个人学习,留作个人的记录笔记
 </p>
 </li>
 <li>
  
 <a href="/zmx729618/article/details/51395979#comments">从HttpServletRequest获取各种路径总结</a>
 <p style="margin:0px;"><a href="/xinxixueyuan110" class="user_name">xinxixueyuan110</a>:
 乱超别人的东西
 </p>
 </li>
 <li>
  
 <a href="/zmx729618/article/details/52127577#comments">Java调用SMS Cat(短信猫)发短信</a>
 <p style="margin:0px;"><a href="/qq_25452849" class="user_name">qq_25452849</a>:
 你好,有接收短信的demo吗?谢谢
 </p>
 </li>
 <li>
  
 <a href="/zmx729618/article/details/52701370#comments">Mysql使用索引可能失效的场景</a>
 <p style="margin:0px;"><a href="/u013038861" class="user_name">u013038861</a>:
 谢谢分享。
 </p>
 </li>
 <li>
  
 <a href="/zmx729618/article/details/54378259#comments">JAVA实现长连接(含心跳检测)Demo</a>
 <p style="margin:0px;"><a href="/zmx729618" class="user_name">zmx729618</a>:
 @qq_36495520:原理应该大同小异,都是定期发送一个消息到具体的模块,然后接受返回消息。
 </p>
 </li>
 <li>
  
 <a href="/zmx729618/article/details/54378259#comments">JAVA实现长连接(含心跳检测)Demo</a>
 <p style="margin:0px;"><a href="/qq_36495520" class="user_name">qq_36495520</a>:
 我需要心跳来控制队列的每一个模块,需要做出来一个.exe软件,有心跳图那种的软件你这个是怎么实现监测...
 </p>
 </li>
 <li>
  
 <a href="/zmx729618/article/details/54378259#comments">JAVA实现长连接(含心跳检测)Demo</a>
 <p style="margin:0px;"><a href="/qq_36495520" class="user_name">qq_36495520</a>:
 不可评论?
 </p>
 </li>
 <li>
  
 <a href="/zmx729618/article/details/51766641#comments">Java之HashCode值改变引起Hashset造成的内存泄露</a>
 <p style="margin:0px;"><a href="/zmx729618" class="user_name">zmx729618</a>:
 @wgxaszc8:很多时候设计对象的比较都需要重写hashCode()和equals()方法,比如...
 </p>
 </li>
 </ul>
 </div>
 </div>
 <div class="clear">
 </div>
  
  
 <!-- 广告位开始 --> <!-- 广告位结束 -->
 <div class="tracking-ad" data-view="true" data-mtp="63" data-order="40" data-con="ad_content_1260" style="width: 200px; height: 200px;">
 <div id="nav_show_top_stop" style="width: 200px;height: 200px;z-index:1000"><div id="cpro_u2734128"></div></div>
 </div>
 <script type="text/javascript">
 setTimeout(function () {
 var naviga_offsetTop = 0;
 function naviga_stay_top() { var scrollTop = jQuery(document).scrollTop(); if (scrollTop > naviga_offsetTop) { jQuery("#nav_show_top_stop").css({ "position": "fixed" }); jQuery("#nav_show_top_stop").css({ "top": "0px" }); } else { jQuery("#nav_show_top_stop").css({ "position": "fixed" }); jQuery("#nav_show_top_stop").css({ "top": naviga_offsetTop - scrollTop + "px" }); } }
 function onload_function() { naviga_offsetTop = jQuery("#nav_show_top_stop").position().top; jQuery(window).bind("scroll", naviga_stay_top); jQuery(window).bind("mousewheel", naviga_stay_top); jQuery(document).bind("scroll", naviga_stay_top); jQuery(document).bind("mousewheel", naviga_stay_top); } jQuery(document).ready(onload_function);
  
 }, 200);
 </script>
 <script type="text/javascript">(window.cproArray = window.cproArray || []).push({ id: "u2734128" }); </script>
 <script src="http://cpro.baidustatic.com/cpro/ui/c.js" type="text/javascript"></script>
  
 </div>
  
 <div class="clear">
 </div>
 </div>
  
  
  
  
  
  
  
  
  
  
 <script type="text/javascript">
 $(function () {
 function __get_code_toolbar(snippet_id) {
 return $("<span class='tracking-ad' data-mod='popu_167'><a href='https://code.csdn.net/snippets/"
 + snippet_id
 + "' target='_blank' title='在CODE上查看代码片' style='text-indent:0;'><img src='https://code.csdn.net/assets/CODE_ico.png' width=12 height=12 alt='在CODE上查看代码片' style='position:relative;top:1px;left:2px;'/></a></span>"
 + "<span class='tracking-ad' data-mod='popu_170'><a href='https://code.csdn.net/snippets/"
 + snippet_id
 + "/fork' target='_blank' title='派生到我的代码片' style='text-indent:0;'><img src='https://code.csdn.net/assets/ico_fork.svg' width=12 height=12 alt='派生到我的代码片' style='position:relative;top:2px;left:2px;'/></a></span>");
 }
  
 $("[code_snippet_id]").each(function () {
 __s_id = $(this).attr("code_snippet_id");
 if (__s_id != null && __s_id != "" && __s_id != 0 && parseInt(__s_id) > 70020) {
 __code_tool = __get_code_toolbar(__s_id);
 $(this).prev().find(".tools").append(__code_tool);
 }
 });
  
 $(".bar").show();
 });
 </script>
  
  
  
  
  
 </div>
 <!--new top-->
  
  
  
  
  
 <!--new top-->
  
  
  
  
  
  
  
  
  
  
  
 <script type="text/javascript" src="http://static.blog.csdn.net/public/res/bower-libs/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
 <script type="text/javascript">
 //$(function () {
 // setTimeout(function () {
 // var searchtitletags = articletitle + ',' + $("#tags").html();
 // searchService({
 // index: 'blog',
 // query: searchtitletags,
 // from: 5,
 // size: 5,
 // appendTo: '#res',
 // url: 'recommend',
 // his: 2,
 // client: "blog_cf_enhance",
 // tmpl: '<dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="#{ url }" title="#{ title }" strategy="#{ strategy }">#{ title }</a></dd>'
 // });
 // }, 1000);
 //});
  
 </script>
  
 <script src="http://static.blog.csdn.net/scripts/csdn_blog_detail.min.js" type="text/javascript"></script>
  
 <script type="text/javascript" src="http://c.csdnimg.cn/blog/csdn_public_blog_detail.min.js?20170620001"></script>
  
 <script type="text/javascript" src="http://medal.blog.csdn.net/showblogmedal.ashx?blogid=1364308"></script>
  
  
  
  
  
 <div id="a52b5334d" style="width: 1px; height: 1px; display: none;">
 <script id="adJs52b5334"></script>
 <script>document.getElementById("adJs52b5334").src = "http://ads.csdn.net/js/opt/52b5334.js?t=" + Math.random();</script>
 </div>
  
  
  
  
  
  
  
  
 <div class="pop_CA_cover" style="display:none"></div>
 <div class="pop pop_CA" style="display:none">
 <div class="CA_header">
 收藏助手
 <span class="cancel_icon" id="fapancle" onclick="$('.pop_CA').hide();$('.pop_CA_cover').hide();"></span>
 </div>
 <iframe src="" id="fa" frameborder="0" width="100%" height="360" scrolling="no" ></iframe>
 </div>
  
  
 <script type="text/javascript">
  
 $(function () {
 var fromjs = $("#fromjs");
 if (fromjs.length > 0) {
 $("#fromjs .markdown_views pre").addClass("prettyprint");
 prettyPrint();
  
 $('pre.prettyprint code').each(function () {
 var lines = $(this).text().split('\n').length;
 var $numbering = $('<ul/>').addClass('pre-numbering').hide();
 $(this).addClass('has-numbering').parent().append($numbering);
 for (i = 1; i <= lines; i++) {
 $numbering.append($('<li/>').text(i));
 };
 $numbering.fadeIn(1700);
 });
  
 $('.pre-numbering li').css("color", "#999");
 }
 });
  
 $(".markdown_views a[target!='_blank']").attr("target", "_blank");
  
 //$(".toc a[target='_blank']").attr("target", "");
  
 setTimeout(function () {
 $(".toc a[target='_blank']").attr("target", "");
 },500);
  
 </script>
  
 </body>
 </html>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值