<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>yonguo</title>
    <description></description>
    <link>http://yonguo.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>window.open用法详解(转)</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/122553" style="color:red;">http://yonguo.javaeye.com/blog/122553</a>&nbsp;
          发表时间: 2007年09月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>javaeye的这个编辑器有点太让人失望了，拷贝过来的文章总是变成乱码，强烈建议提供消除文章中格式的功能！</p>
<p><a href="http://blog.csdn.net/alexcao247/archive/2007/07/05/1679416.aspx">blog.csdn.net/alexcao247/archive/2007/07/05/1679416.aspx</a></p>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/122553#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 10 Sep 2007 13:38:50 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/122553</link>
        <guid>http://yonguo.javaeye.com/blog/122553</guid>
      </item>
      <item>
        <title>C3P0连接池错误</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/120574" style="color:red;">http://yonguo.javaeye.com/blog/120574</a>&nbsp;
          发表时间: 2007年09月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><strong>Ibatis中关于C3p0连接池的配置如下：</strong></p>
<div class="code_title">xml 代码</div>
<span class="tag"><strong>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;com.mchange.v2.c3p0.ComboPooledDataSource&quot;</span><span>&nbsp;</span><span class="attribute">destroy-method</span><span>=</span><span class="attribute-value">&quot;close&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;driverClass&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;${jdbc.driverClassName}&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;jdbcUrl&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;${jdbc.url}&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;user&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;${jdbc.username}&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;password&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;${jdbc.password}&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;minPoolSize&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;1&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;maxPoolSize&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;20&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;maxIdleTime&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;10&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;acquireIncrement&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;3&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;maxStatements&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;0&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;initialPoolSize&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;20&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;idleConnectionTestPeriod&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;10&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>在执行的时候报如下错误信息：</p>
<p>WARN - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1eeb95 <br />
e -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending task <br />
s! <br />
WARN - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1eeb95 <br />
e -- APPARENT DEADLOCK!!! Complete Status: <br />
Managed Threads: 3 <br />
Active Threads: 3 <br />
Active Tasks: <br />
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@d43997 <br />
(com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2) <br />
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@110f85 <br />
0 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0) <br />
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@11e8d5 <br />
c (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1) <br />
Pending Tasks: <br />
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@d2ad3c</p>
<p>Pool thread stack traces: <br />
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5 <br />
,main] <br />
java.lang.Thread.sleep(Native Method) <br />
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(Ba <br />
sicResourcePool.java:1805) <br />
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run <br />
(ThreadPoolAsynchronousRunner.java:547) <br />
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5 <br />
,main] <br />
java.lang.Thread.sleep(Native Method) <br />
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(Ba <br />
sicResourcePool.java:1805) <br />
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run <br />
(ThreadPoolAsynchronousRunner.java:547) <br />
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5 <br />
,main] <br />
java.lang.Thread.sleep(Native Method) <br />
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(Ba <br />
sicResourcePool.java:1805) <br />
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run <br />
(ThreadPoolAsynchronousRunner.java:547)</p>
<p><strong>解决办法：</strong></p>
<p>更改配置文件里的最大连接数和初始化连接数大小：</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;maxPoolSize&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;1&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;initialPoolSize&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;1&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>因为数据库的连接数是有限的，每次应用启动C3p0都会占用数据库的连接来填充C3p0的连接池，而当数据库的资源被占光时就会因为无法获得共享资源而报死锁。</p>
</strong></span>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/120574#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 05 Sep 2007 11:13:01 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/120574</link>
        <guid>http://yonguo.javaeye.com/blog/120574</guid>
      </item>
      <item>
        <title>居中的弹出式窗口</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/118498" style="color:red;">http://yonguo.javaeye.com/blog/118498</a>&nbsp;
          发表时间: 2007年08月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>方式一：JS代码创建窗口</p>
<div class="code_title">js 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c">
    <li class="alt"><span><span>&lt;script&gt; &nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="keyword">var</span><span>&nbsp;popup&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Object() &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">function</span><span>&nbsp;CenterPopup(URL,&nbsp;width,&nbsp;height) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Window&nbsp;dimensions: </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;theWidth,&nbsp;theHeight; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(window.innerWidth) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;theWidth=window.innerWidth; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;</span><span class="keyword">if</span><span>&nbsp;(document.documentElement&nbsp;&amp;&amp;&nbsp;document.documentElement.clientWidth) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;theWidth=document.documentElement.clientWidth; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;</span><span class="keyword">if</span><span>&nbsp;(document.body) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;theWidth=document.body.clientWidth; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(window.innerHeight) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;theHeight=window.innerHeight; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;</span><span class="keyword">if</span><span>&nbsp;(document.documentElement&nbsp;&amp;&amp;&nbsp;document.documentElement.clientHeight) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;theHeight=document.documentElement.clientHeight; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;</span><span class="keyword">if</span><span>&nbsp;(document.body) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;theHeight=document.body.clientHeight; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Window&nbsp;origin </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;originX,&nbsp;originY; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(window.innerHeight)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;originX=screenX+(window.outerWidth-window.innerWidth); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;originY=screenY+(window.outerHeight-window.innerHeight); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;originX=screenLeft; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;originY=screenTop; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;X&nbsp;=&nbsp;theWidth/2; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;Y&nbsp;=&nbsp;theHeight/2; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;features='</span><span class="string">&quot;scrollbars=0,&nbsp;'&nbsp;+ </span>&nbsp;</li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;'width='&nbsp;+&nbsp;width&nbsp;+&nbsp;',&nbsp;'&nbsp;+ </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;'height='&nbsp;+&nbsp;height&nbsp;+&nbsp;',&nbsp;'&nbsp;+ </span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;'top='&nbsp;+&nbsp;parseInt(originY&nbsp;+&nbsp;(Y&nbsp;-&nbsp;(height/2)))&nbsp;+&nbsp;',&nbsp;'&nbsp;+&nbsp;// </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;'left='&nbsp;+&nbsp;parseInt(originX&nbsp;+&nbsp;(X&nbsp;-&nbsp;(width/2)))&nbsp;+&nbsp;'&quot;</span><span>'; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;popup&nbsp;=&nbsp;window.open(URL,&nbsp;</span><span class="string">&quot;PopUp&quot;</span><span>,&nbsp;features); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;popup.focus() &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;/script&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;html&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&lt;body&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;a&nbsp;href=</span><span class="string">&quot;#&quot;</span><span>&nbsp;onclick=</span><span class="string">&quot;CenterPopup('house.html',500,400)&quot;</span><span>&gt;open&nbsp;</span><span class="keyword">new</span><span>&nbsp;window&lt;/a&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&lt;/body&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;/html&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>方式二：open()打开窗口</p>
<div class="code_title">js 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c">
    <li class="alt"><span><span>&lt;HTML&gt; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&lt;Head&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;Script&nbsp;Language=JavaScript&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">var</span><span>&nbsp;popWin&nbsp;=&nbsp;</span><span class="string">&quot;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">function</span><span>&nbsp;openwin(url,&nbsp;strWidth,&nbsp;strHeight){ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">if</span><span>&nbsp;(popWin&nbsp;!=&nbsp;</span><span class="string">&quot;&quot;</span><span>){popWin.close()} &nbsp;&nbsp;</span></li>
    <li class=""><span>leftStr&nbsp;=&nbsp;(screen.width-strWidth)/2; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>topStr&nbsp;=&nbsp;(screen.height-strHeight)/2; &nbsp;&nbsp;</span></li>
    <li class=""><span>windowProperties&nbsp;=&nbsp;</span><span class="string">&quot;toolbar=no,menubar=no,scrollbars=no,stausbar=no,height=&quot;</span><span>+strHeight+</span><span class="string">&quot;,width=&quot;</span><span>+strWidth+</span><span class="string">&quot;,left=&quot;</span><span>+leftStr+</span><span class="string">&quot;,top=&quot;</span><span>+topStr+</span><span class="string">&quot;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>popWin&nbsp;=&nbsp;window.open(url,'newWin',windowProperties); &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&lt;/Script&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;/Head&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&lt;Body&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;a&nbsp;href=</span><span class="string">&quot;#&quot;</span><span>&nbsp;onClick=</span><span class="string">&quot;openwin('house.html',400,325)&quot;</span><span>&gt;Open&nbsp;a&nbsp;centered&nbsp;popup&nbsp;window&lt;/a&gt;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&lt;/Body&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;/HTML&gt; &nbsp;&nbsp;</span></li>
</ol>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/118498#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 30 Aug 2007 21:50:31 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/118498</link>
        <guid>http://yonguo.javaeye.com/blog/118498</guid>
      </item>
      <item>
        <title>关闭窗口时执行，刷新窗口不执行</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/118077" style="color:red;">http://yonguo.javaeye.com/blog/118077</a>&nbsp;
          发表时间: 2007年08月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="code_title">
<p class="code_title">项目中需要控制同一用户不能重复登录，所以必须在用户关闭窗口时清除session，上网一搜，基本上都用的</p>
<p class="code_title">下面这种方法：</p>
<div class="code_title">js 代码</div>
<div class="code_title">
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c">
    <li class="alt"><span><span class="keyword">function</span><span>&nbsp;window.onbeforeunload()&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>{&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>(event.clientX&gt;360&amp;&amp;event.clientY&lt;0||event.altKey)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&hellip;&hellip; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<div class="code_title"></div>
<div class="code_title">经过测试，发现这种方法很不完善，完全依赖鼠标的位置，无奈之下还是放弃了此方法。</div>
<div class="code_title"></div>
<div class="code_title">最后找到下面这个方法，感觉真是不错，刷新时关闭窗口并不会执行此代码，只有在关闭窗口时才会执行，完全符合项目要求。</div>
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>&lt;script&nbsp;type=</span><span class="string">&quot;text/javascript&quot;</span><span>&gt; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;window.onunload&nbsp;=&nbsp;function(){ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/* </span>&nbsp;</li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.screenTop </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;获取浏览器客户区左上角相对于屏幕左上角的&nbsp;y&nbsp;坐标 </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;screenTop&gt;后面的数字必须大于你显示分辩率中的高度 </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;比如，800*600,&nbsp;这个数得大于600&nbsp; </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.screenLeft </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;获取浏览器客户区左上角相对于屏幕左上角的&nbsp;x&nbsp;坐标 </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;screenLeft&gt;后面的数字必须大于你显示分辩率中的宽度 </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;比如，800*600,&nbsp;这个数得大于800 </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通常这两个值设为9000 </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;参考资料：DHTML完全参考手册&nbsp; </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">http://wangwq.w4.dns2008.cn/index_web/DHTMLref/default.html </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>(self.screenLeft&gt;</span><span class="number">9000</span><span>)&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.location.href=</span><span class="string">&quot;/user.do?method=logout&amp;background=background&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;/script&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/118077#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 29 Aug 2007 21:22:44 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/118077</link>
        <guid>http://yonguo.javaeye.com/blog/118077</guid>
      </item>
      <item>
        <title>新编日语教程—第五课</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/117288" style="color:red;">http://yonguo.javaeye.com/blog/117288</a>&nbsp;
          发表时间: 2007年08月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font size="3" face="Verdana">基础语法：</font></p>
<p><font size="3" face="Verdana"> 例1：</font></p>
<p><font size="3" face="Verdana"> わたしはおうです。我是小王。</font></p>
<p><font size="3" face="Verdana"> 1. 甲 は 乙　です</font></p>
<p><font size="3" face="Verdana"> 『は』是提示助词，读作『わ(WA)』，接在名词后面提示&ldquo;主语&rdquo;。</font></p>
<p><font size="3" face="Verdana"> 『です』是助动词，相当于中文的&ldquo;&hellip;&hellip;是&hellip;&hellip;&rdquo;，也可以说相当于英语的&ldquo;be动词&rdquo;。</font></p>
<p><font size="3" face="Verdana"> 『甲は乙です』的句型相当于汉语的&ldquo;甲是乙&rdquo;。</font></p>
<p><font size="3" face="Verdana"> 例2：</font></p>
<p><font size="3" face="Verdana"> わたしはにほんじんではありません。我不是日本人。</font></p>
<p><font size="3" face="Verdana"> 2. 甲 は 乙　ではあリません</font></p>
<p><font size="3" face="Verdana"> 这是上面句型的否定句，相当于汉语的&ldquo;甲不是乙&rdquo;。</font></p>
<p><font size="3" face="Verdana"> 上面句型中的『です』的否定形式就是『ではあリません』。</font></p>
<p><font size="3" face="Verdana"> 例3：</font></p>
<p><font size="3" face="Verdana"> あなたはちゅうごくじんですか。你是中国人吗？</font></p>
<p><font size="3" face="Verdana"> 3. 甲 は 乙　ですか</font></p>
<p><font size="3" face="Verdana"> 这是句型1的疑问句，相当于汉语的&ldquo;甲是乙吗？&rdquo;。日文的疑问句是在句末加表示疑问</font></p>
<p><font size="3" face="Verdana"> 的终助词『か』构成。『か』的音调升高，句子末尾一般不用问号&ldquo;?&rdquo;，而用&ldquo;。&rdquo;结句。</font></p>
<p><font size="3" face="Verdana"> 例句：</font></p>
<p><font size="3" face="Verdana"> 例4</font></p>
<p><font size="3" face="Verdana"> はい、そうです。/いいえ、そうではありません。</font></p>
<p><font size="3" face="Verdana"> 4. &ldquo;はい&rdquo;和&ldquo;いいえ&rdquo;</font></p>
<p><font size="3" face="Verdana"> 一般问句的答句，如果是肯定的，用『はい』起句。</font></p>
<p><font size="3" face="Verdana"> 『はい』相当于汉语的&ldquo;是&rdquo;、&ldquo;是的&rdquo;，相当于</font></p>
<p><font size="3" face="Verdana"> 英语的&ldquo;yes&rdquo;。</font></p>
<p><font size="3" face="Verdana"> 问：王さんは中国人ですか。</font></p>
<p><font size="3" face="Verdana"> 答：はい、王さんは中国人です。</font></p>
<p><font size="3" face="Verdana"> 上述答句中，重复了和问句相同的部分。为了避免</font></p>
<p><font size="3" face="Verdana"> 这类重复，可按下述方式『そう』来回答。</font></p>
<p><font size="3" face="Verdana"> 问：王さんは中国人ですか。</font></p>
<p><font size="3" face="Verdana"> 答：はい、そうです。</font></p>
<p><font size="3" face="Verdana"> 一般问句的答句，如果是否定的，用『いいえ』起句，</font></p>
<p><font size="3" face="Verdana"> 且用『ではありません』结句。也就是说，『いいえ』</font></p>
<p><font size="3" face="Verdana"> 相当于汉语的&ldquo;是&rdquo;、&ldquo;是的&rdquo;，相当于英语的&ldquo;yes&rdquo;。</font></p>
<p><font size="3" face="Verdana"> 『いいえ』相当于汉语的&ldquo;不&rdquo;、&ldquo;不是的&rdquo;，相当于</font></p>
<p><font size="3" face="Verdana"> 英语的&ldquo;no&rdquo;。</font></p>
<p><font size="3" face="Verdana"> 这时也可以用『』来回答，避免重复问句的内容。或者</font></p>
<p><font size="3" face="Verdana"> 用『いいえ、ちがいます』</font></p>
<p><font size="3" face="Verdana"> 例5：</font></p>
<p><font size="3" face="Verdana"> おうさんはちゅうごくのりゅうがくせいです。小王是中国的留学生</font></p>
<p><font size="3" face="Verdana"> 5. 甲 の 乙</font></p>
<p><font size="3" face="Verdana"> 格助词『</font><font size="3" face="Verdana">の</font><font size="3" face="Verdana">』用于连接名词和名词，相当于汉语的&ldquo;&hellip;&hellip;的&hellip;&hellip;&rdquo;。</font></p>
<p><font size="3" face="Verdana"> 例6：</font></p>
<p><font size="3" face="Verdana"> ダニエルさんもりゅうがくせいです。丹尼尔也是留学生</font></p>
<p><font size="3" face="Verdana"> 提示助词『も』相当于汉语的&ldquo;也&rdquo;。代替『は』提示主语，</font></p>
<p><font size="3" face="Verdana"> 常接在名词、助词等后面。</font></p>
<p><font size="3" face="Verdana"> 应用语法：</font></p>
<p><font size="3" face="Verdana"> 1. お～</font></p>
<p><font size="3" face="Verdana"> 接头词『お』加在与听话人或第三者有关的事物之前，表达说话人的敬意。</font></p>
<p><font size="3" face="Verdana"> 例：あなたのおなまえは？你的名字呢？</font></p>
<p><font size="3" face="Verdana"> 2. ～さん</font></p>
<p><font size="3" face="Verdana"> 『さん』相当于汉语的&ldquo;先生(小姐)&rdquo;，也可以说相当于英语的&ldquo;Mr.&rdquo;</font></p>
<p><font size="3" face="Verdana"> 、&ldquo;Miss&rdquo;等。但『さん』只能接在听话人或者第三者的姓名后面。在自己</font></p>
<p><font size="3" face="Verdana"> (指说话人)的姓名后面不应该使用。</font></p>
<p><font size="3" face="Verdana"> 例：ダニエルさんはいぎりすじんです。丹尼尔先生是英国人。</font></p>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/117288#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 28 Aug 2007 00:33:29 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/117288</link>
        <guid>http://yonguo.javaeye.com/blog/117288</guid>
      </item>
      <item>
        <title>Javascript 去除空格函数</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/115913" style="color:red;">http://yonguo.javaeye.com/blog/115913</a>&nbsp;
          发表时间: 2007年08月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="code_title">js 代码
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c">
    <li class="alt"><span><span>String.prototype.Trim&nbsp;=&nbsp;</span><span class="keyword">function</span><span>()&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="keyword">this</span><span>.replace(/(^\s*)|(\s*$)/g,&nbsp;</span><span class="string">&quot;&quot;</span><span>);&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>String.prototype.LTrim&nbsp;=&nbsp;</span><span class="keyword">function</span><span>()&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>{&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="keyword">this</span><span>.replace(/(^\s*)/g,&nbsp;</span><span class="string">&quot;&quot;</span><span>);&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>String.prototype.RTrim&nbsp;=&nbsp;</span><span class="keyword">function</span><span>()&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="keyword">this</span><span>.replace(/(\s*$)/g,&nbsp;</span><span class="string">&quot;&quot;</span><span>);&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp; &nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/115913#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 23 Aug 2007 21:11:07 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/115913</link>
        <guid>http://yonguo.javaeye.com/blog/115913</guid>
      </item>
      <item>
        <title>session的概念与基本用法</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/115912" style="color:red;">http://yonguo.javaeye.com/blog/115912</a>&nbsp;
          发表时间: 2007年08月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong>&nbsp;概念：</strong> &nbsp; <br />
&nbsp; 当用户与服务器连接时，服务器给每个用户一个session，并设定其中内容。 &nbsp; <br />
&nbsp; 这些session相互独立。 &nbsp; <br />
&nbsp; 服务器可以借此来辨别用户信息，进而提供个别服务。 &nbsp; <br />
&nbsp; session有存在期限。&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<strong>&nbsp;类：</strong> &nbsp; <br />
&nbsp; javax.servlet.HttpSession &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 内容：用于生成会话信息。&nbsp;&nbsp;&nbsp;<br />
&nbsp; 作用域：session&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<strong>&nbsp;seesion的建立：</strong> &nbsp; <br />
&nbsp; request.getSession &nbsp; (true);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<strong>&nbsp;在session中加入和删除数据：</strong> &nbsp; <br />
&nbsp; 方法 说明 &nbsp; <br />
&nbsp; putValue &nbsp; (String, &nbsp; Object) 设定session内容 &nbsp; <br />
&nbsp; removeValue &nbsp; (String) 删除seesion内容&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<strong>&nbsp;取得session中变量内容：</strong> &nbsp; <br />
&nbsp; 方法 说明 &nbsp; <br />
&nbsp; getValue &nbsp; (String) 返回指定变量的内容 &nbsp; <br />
&nbsp; getValueNames &nbsp; () 返回所有变量的名称&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<strong>&nbsp;其他常用方法：</strong> &nbsp; <br />
&nbsp; 方法 说明 &nbsp; <br />
&nbsp; getId &nbsp; () 返回session &nbsp; ID &nbsp; <br />
&nbsp; isNew &nbsp; () 判定session是否为新 &nbsp; <br />
&nbsp; invalidate &nbsp; () 删除session &nbsp; <br />
&nbsp; getCreactionTime &nbsp; () 返回session建立的时间 &nbsp; <br />
&nbsp; getLastAccessedTime &nbsp; () 返回seesion最后访问时间&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<strong>&nbsp;session的存在期限：</strong> &nbsp; <br />
&nbsp; 方法 说明 &nbsp; <br />
&nbsp; getMaxInactiveInterval &nbsp; () 返回seesion存在期限 &nbsp; <br />
&nbsp; setMaxInactiveInterval &nbsp; () 设定seesion存在期限
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/115912#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 23 Aug 2007 21:09:17 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/115912</link>
        <guid>http://yonguo.javaeye.com/blog/115912</guid>
      </item>
      <item>
        <title>spring中使用proxool作数据源连接池的配置</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/115228" style="color:red;">http://yonguo.javaeye.com/blog/115228</a>&nbsp;
          发表时间: 2007年08月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>很奇怪，很多人都说proxool很好，<br />
但是搜索spring中配置proxool作 数据源连接池的资料却几乎找不到详细点的。<br />
<br />
因此自己整理如下：<br />
<br />
先下载:&nbsp; <a href="http://surfnet.dl.sourceforge.net/sourceforge/proxool/proxool-0.9.0RC2.zip">http://surfnet.dl.sourceforge.net/sourceforge/proxool/proxool-0.9.0RC2.zip</a></p>
<p><strong>配置如下：</strong></p>
<p><strong>&nbsp;web.xml</strong></p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>proxoolServletConfigurator</span><span class="tag">&lt;/</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>org.logicalcobwebs.proxool.configuration.ServletConfigurator</span><span class="tag">&lt;/</span><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">init-param</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param-name</span><span class="tag">&gt;</span><span>xmlFile</span><span class="tag">&lt;/</span><span class="tag-name">param-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param-value</span><span class="tag">&gt;</span><span>WEB-INF/proxool.xml</span><span class="tag">&lt;/</span><span class="tag-name">param-value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">init-param</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">load-on-startup</span><span class="tag">&gt;</span><span>1</span><span class="tag">&lt;/</span><span class="tag-name">load-on-startup</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>proxooladmin</span><span class="tag">&lt;/</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</span><span class="tag">&lt;/</span><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">servlet-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>proxooladmin</span><span class="tag">&lt;/</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>/proxooladmin</span><span class="tag">&lt;/</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">servlet-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p><strong>proxool.xml</strong><br />
</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;UTF-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">proxool-config</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">proxool</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">alias</span><span class="tag">&gt;</span><span>blogdb</span><span class="tag">&lt;/</span><span class="tag-name">alias</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">driver-url</span><span class="tag">&gt;</span><span>jdbc:oracle:thin:@127.0.0.1:1521:ORADB</span><span class="tag">&lt;/</span><span class="tag-name">driver-url</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">driver-class</span><span class="tag">&gt;</span><span>oracle.jdbc.driver.OracleDriver</span><span class="tag">&lt;/</span><span class="tag-name">driver-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">driver-properties</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;user&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;lizongbo&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;password&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;password&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">driver-properties</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">maximum-connection-count</span><span class="tag">&gt;</span><span>10</span><span class="tag">&lt;/</span><span class="tag-name">maximum-connection-count</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">house-keeping-test-sql</span><span class="tag">&gt;</span><span>select&nbsp;1&nbsp;from&nbsp;dual</span><span class="tag">&lt;/</span><span class="tag-name">house-keeping-test-sql</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">proxool</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">proxool-config</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p><font face="Arial"><strong>spring里两种配置：</strong><br />
<strong>a:&nbsp;&nbsp; 与上面的proxool以及web.xml里结合使用</strong></font></p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;mainDataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;org.springframework.jdbc.datasource.DriverManagerDataSource&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;driverClassName&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>org.logicalcobwebs.proxool.ProxoolDriver</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;url&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>proxool.blogdb</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p><font face="Arial"><strong>b： 单独的类似dbcp的使用</strong></font></p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;mainDataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;org.logicalcobwebs.proxool.ProxoolDataSource&quot;</span><span>&nbsp;</span><span class="attribute">destroy-method</span><span>=</span><span class="attribute-value">&quot;close&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;driver&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>oracle.jdbc.driver.OracleDriver</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;driverUrl&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>jdbc:oracle:thin:lizongbo/password@127.0.0.1:1521:ORADB</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--用户名和密码写在一起才调用成功,不然会报&quot;调用无效的参数&quot;错误,下面设置用户名和密码的property好像是无效的,其它数据库也是这样,比如mysql的也要把用户名和密码写在url里:&lt;property&nbsp;name=&quot;driverUrl&quot;&nbsp;value=&quot;jdbc:mysql://localhost:3306/blogdb?user=lizongbo&amp;amp;password=lizongbo&quot;&nbsp;/&gt;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;user&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span><span class="comments">&lt;!--&nbsp;必须在这里也设置，但是&nbsp;proxool却不使用它，或许是个bug--&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>lizongbo</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;password&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span><span class="comments">&lt;!--&nbsp;必须在这里也设置，但是&nbsp;proxool却不使用它，或许是个bug--&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>lizongbo</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;alias&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>lizongbo</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;houseKeepingSleepTime&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>90000</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;prototypeCount&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>5</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;maximumConnectionCount&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>100</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;minimumConnectionCount&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>10</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;trace&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>true</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;verbose&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>true</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p><br />
</p>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/115228#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 22 Aug 2007 12:42:02 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/115228</link>
        <guid>http://yonguo.javaeye.com/blog/115228</guid>
      </item>
      <item>
        <title>spring数据源的配置参数</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/115226" style="color:red;">http://yonguo.javaeye.com/blog/115226</a>&nbsp;
          发表时间: 2007年08月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>共分spring容器自带连接池、项目中创建连接池、服务器创建连接池三种</p>
<p>1、spring容器自带连接池</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;org.springframework.jdbc.datasource.DriverManagerDataSource&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;driverClassName&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>com.mysql.jdbc.Driver</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;url&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>jdbc:mysql://127.0.0.1:3306/test</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;username&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>admin</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;password&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>2、项目中创建连接池（一般利用开源项目）</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;org.apache.commons.dbcp.BasicDataSource&quot;</span><span>&nbsp;</span><span class="attribute">destroy-method</span><span>=</span><span class="attribute-value">&quot;close&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;driverClassName&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>com.mysql.jdbc.Driver</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;url&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>jdbc:mysql://127.0.0.1:3306/test</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;username&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>admin</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;password&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>3、应用服务器创建数据源，项目中通过jndi访问，以tomcat为例</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;org.springframework.jndi.JndiObjectFactoryBean&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;jndiName&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>java:comp/env/jdbc/TestDB</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>转自：<a href="http://www.yoy1.com/thread-19577-1-1.html">www.yoy1.com/thread-19577-1-1.html</a><br />
</p>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/115226#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 22 Aug 2007 12:25:37 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/115226</link>
        <guid>http://yonguo.javaeye.com/blog/115226</guid>
      </item>
      <item>
        <title>配置Spring数据源</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/115221" style="color:red;">http://yonguo.javaeye.com/blog/115221</a>&nbsp;
          发表时间: 2007年08月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>配置一个数据源 <br />
&nbsp;&nbsp;&nbsp; Spring在第三方依赖包中包含了两个数据源的实现类包，其一是Apache的DBCP，其二是 C3P0。可以在Spring配置文件中利用这两者中任何一个配置数据源。</p>
<p><strong>&nbsp;DBCP数据源</strong> <br />
&nbsp;&nbsp;&nbsp; DBCP类包位于 <spring_home></spring_home>/lib/jakarta-commons/commons-dbcp.jar，DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连接池，所以在类路径下还必须包括<spring_home></spring_home>/lib/jakarta- commons/commons-pool.jar。下面是使用DBCP配置MySql数据源的配置片断：</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;org.apache.commons.dbcp.BasicDataSource&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">destroy-method</span><span>=</span><span class="attribute-value">&quot;close&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;driverClassName&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;com.mysql.jdbc.Driver&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;url&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;jdbc:mysql://localhost:3309/sampledb&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;username&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;root&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;password&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;1234&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>BasicDataSource提供了close()方法关闭数据源，所以必须设定destroy-method=&rdquo;close&rdquo;属性， 以便Spring容器关闭时，数据源能够正常关闭。除以上必须的数据源属性外，还有一些常用的属性： <br />
&nbsp;&nbsp;&nbsp; defaultAutoCommit：设置从数据源中返回的连接是否采用自动提交机制，默认值为 true； <br />
&nbsp;&nbsp;&nbsp; defaultReadOnly：设置数据源是否仅能执行只读操作， 默认值为 false； <br />
&nbsp;&nbsp;&nbsp; maxActive：最大连接数据库连接数，设置为0时，表示没有限制； <br />
&nbsp;&nbsp;&nbsp; maxIdle：最大等待连接中的数量，设置为0时，表示没有限制； <br />
&nbsp;&nbsp;&nbsp; maxWait：最大等待秒数，单位为毫秒， 超过时间会报出错误信息； <br />
&nbsp;&nbsp;&nbsp; validationQuery：用于验证连接是否成功的查询SQL语句，SQL语句必须至少要返回一行数据， 如你可以简单地设置为：&ldquo;select count(*) from user&rdquo;； <br />
&nbsp;&nbsp;&nbsp; removeAbandoned：是否自我中断，默认是 false ； <br />
&nbsp;&nbsp;&nbsp; removeAbandonedTimeout：几秒后数据连接会自动断开，在removeAbandoned为true，提供该值； <br />
&nbsp;&nbsp;&nbsp; logAbandoned：是否记录中断事件， 默认为 false； </p>
<p><strong>C3P0数据源</strong> <br />
&nbsp;&nbsp;&nbsp; C3P0是一个开放源代码的JDBC数据源实现项目，它在lib目录中与Hibernate一起发布，实现了JDBC3和JDBC2扩展规范说明的 Connection 和Statement 池。C3P0类包位于<spring_home></spring_home>/lib/c3p0/c3p0-0.9.0.4.jar。下面是使用C3P0配置一个 Oracle数据源：</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;com.mchange.v2.c3p0.ComboPooledDataSource&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">destroy-method</span><span>=</span><span class="attribute-value">&quot;close&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;driverClass&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;&nbsp;oracle.jdbc.driver.OracleDriver&nbsp;&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;jdbcUrl&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;&nbsp;jdbc:oracle:thin:@localhost:1521:ora9i&nbsp;&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;user&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;admin&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;password&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;1234&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>ComboPooledDataSource和BasicDataSource一样提供了一个用于关闭数据源的close()方法，这样我们就可以保证Spring容器关闭时数据源能够成功释放。 <br />
&nbsp;&nbsp;&nbsp; C3P0拥有比DBCP更丰富的配置属性，通过这些属性，可以对数据源进行各种有效的控制： <br />
&nbsp;&nbsp;&nbsp; acquireIncrement：当连接池中的连接用完时，C3P0一次性创建新连接的数目； <br />
&nbsp;&nbsp;&nbsp; acquireRetryAttempts：定义在从数据库获取新连接失败后重复尝试获取的次数，默认为30； <br />
&nbsp;&nbsp;&nbsp; acquireRetryDelay：两次连接中间隔时间，单位毫秒，默认为1000； <br />
&nbsp;&nbsp;&nbsp; autoCommitOnClose：连接关闭时默认将所有未提交的操作回滚。默认为false； <br />
&nbsp;&nbsp;&nbsp; automaticTestTable： C3P0将建一张名为Test的空表，并使用其自带的查询语句进行测试。如果定义了这个参数，那么属性preferredTestQuery将被忽略。你 不能在这张Test表上进行任何操作，它将中为C3P0测试所用，默认为null； <br />
&nbsp;&nbsp;&nbsp; breakAfterAcquireFailure：获取连接失败将会引起所有等待获取连接的线程抛出异常。但是数据源仍有效保留，并在下次调&nbsp;&nbsp; 用getConnection()的时候继续尝试获取连接。如果设为true，那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。默认为 false； <br />
&nbsp;&nbsp;&nbsp; checkoutTimeout：当连接池用完时客户端调用getConnection()后等待获取新连接的时间，超时后将抛出SQLException，如设为0则无限期等待。单位毫秒，默认为0； <br />
&nbsp;&nbsp;&nbsp; connectionTesterClassName： 通过实现ConnectionTester或QueryConnectionTester的类来测试连接，类名需设置为全限定名。默认为 com.mchange.v2.C3P0.impl.DefaultConnectionTester；&nbsp;<br />
&nbsp;&nbsp;&nbsp; idleConnectionTestPeriod：隔多少秒检查所有连接池中的空闲连接，默认为0表示不检查； <br />
&nbsp;&nbsp;&nbsp; initialPoolSize：初始化时创建的连接数，应在minPoolSize与maxPoolSize之间取值。默认为3； <br />
&nbsp;&nbsp;&nbsp; maxIdleTime：最大空闲时间，超过空闲时间的连接将被丢弃。为0或负数则永不丢弃。默认为0； <br />
&nbsp;&nbsp;&nbsp; maxPoolSize：连接池中保留的最大连接数。默认为15； <br />
&nbsp;&nbsp;&nbsp; maxStatements：JDBC的标准参数，用以控制数据源内加载的PreparedStatement数量。但由于预缓存的Statement属 于单个Connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素，如果maxStatements与 maxStatementsPerConnection均为0，则缓存被关闭。默认为0； <br />
&nbsp;&nbsp;&nbsp; maxStatementsPerConnection：连接池内单个连接所拥有的最大缓存Statement数。默认为0； <br />
&nbsp;&nbsp;&nbsp; numHelperThreads：C3P0是异步操作的，缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能，通过多线程实现多个操作同时被执行。默认为3； <br />
&nbsp;&nbsp;&nbsp; preferredTestQuery：定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个参数能显著提高测试速度。测试的表必须在初始数据源的时候就存在。默认为null； <br />
&nbsp;&nbsp;&nbsp; propertyCycle： 用户修改系统配置参数执行前最多等待的秒数。默认为300； <br />
&nbsp;&nbsp;&nbsp; testConnectionOnCheckout：因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都 将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable <br />
等方法来提升连接测试的性能。默认为false； <br />
&nbsp;&nbsp;&nbsp; testConnectionOnCheckin：如果设为true那么在取得连接的同时将校验连接的有效性。默认为false。 <br />
<br />
<strong>读配置文件的方式引用属性： </strong>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;propertyConfigurer&quot;</span><span>&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;location&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;/WEB-INF/jdbc.properties&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;org.apache.commons.dbcp.BasicDataSource&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">destroy-method</span><span>=</span><span class="attribute-value">&quot;close&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;driverClassName&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;${jdbc.driverClassName}&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;url&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;${jdbc.url}&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;username&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;${jdbc.username}&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;password&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;${jdbc.password}&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;&nbsp;&nbsp; 在jdbc.properties属性文件中定义属性值： <br />
&nbsp;&nbsp;&nbsp; jdbc.driverClassName= com.mysql.jdbc.Driver <br />
&nbsp;&nbsp;&nbsp; jdbc.url= jdbc:mysql://localhost:3309/sampledb <br />
&nbsp;&nbsp;&nbsp; jdbc.username=root <br />
&nbsp;&nbsp;&nbsp; jdbc.password=1234 <br />
&nbsp;&nbsp;&nbsp; 提示 经常有开发者在${xxx}的前后不小心键入一些空格，这些空格字符将和变量合并后作为属性的值。如：
<property name="username" value=" ${jdbc.username} "></property>
的属性配置项，在前后都有空格，被解析后，username的值为&ldquo; 1234 &rdquo;，这将造成最终的错误，因此需要特别小心。<br />
<br />
<strong>&nbsp;获取JNDI数据源</strong> <br />
&nbsp;&nbsp;&nbsp; 如果应用配置在高性能的应用服务器（如WebLogic或Websphere等）上，我们可能更希望使用应用服务器本身提供的数据源。应用服务器的数据源 使用JNDI开放调用者使用，Spring为此专门提供引用JNDI资源的JndiObjectFactoryBean类。下面是一个简单的配置：</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;org.springframework.jndi.JndiObjectFactoryBean&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;jndiName&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;java:comp/env/jdbc/bbt&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>通过jndiName指定引用的JNDI数据源名称。 <br />
&nbsp;&nbsp;&nbsp; Spring 2.0为获取J2EE资源提供了一个jee命名空间，通过jee命名空间，可以有效地简化J2EE资源的引用。下面是使用jee命名空间引用JNDI数据源的配置： </p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">beans</span><span>&nbsp;</span><span class="attribute">xmlns</span><span>=</span><span class="attribute-value">http</span><span>://www.springframework.org/schema/beans&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="attribute">xmlns:xsi</span><span>=</span><span class="attribute-value">http</span><span>://www.w3.org/2001/XMLSchema-instance&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="attribute">xmlns:jee</span><span>=</span><span class="attribute-value">http</span><span>://www.springframework.org/schema/jee&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="attribute">xsi:schemaLocation</span><span>=&quot;http://www.springframework.org/schema/beans&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>http://www.springframework.org/schema/jee&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>http://www.springframework.org/schema/jee/spring-jee-2.0.xsd&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">jee:jndi-lookup</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dataSource&quot;</span><span>&nbsp;</span><span class="attribute">jndi-name</span><span>=</span><span class="attribute-value">&quot;&nbsp;java:comp/env/jdbc/bbt&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">beans</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p><font face="Arial">Spring的数据源实现类 <br />
&nbsp;&nbsp;&nbsp; Spring本身也提供了一个简单的数据源实现类DriverManagerDataSource ，它位于org.springframework.jdbc.datasource包中。这个类实现了javax.sql.DataSource接口，但 它并没有提供池化连接的机制，每次调用getConnection()获取新连接时，只是简单地创建一个新的连接。因此，这个数据源类比较适合在单元测试 或简单的独立应用中使用，因为它不需要额外的依赖类。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; 下面，我们来看一下DriverManagerDataSource的简单使用：</font><font face="Arial">当然，我们也可以通过配置的方式直接使用DriverManagerDataSource。</font></p>
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>DriverManagerDataSource&nbsp;ds&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;DriverManagerDataSource&nbsp;();&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>ds.setDriverClassName(</span><span class="string">&quot;com.mysql.jdbc.Driver&quot;</span><span>);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>ds.setUrl(</span><span class="string">&quot;jdbc:mysql://localhost:3309/sampledb&quot;</span><span>);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>ds.setUsername(</span><span class="string">&quot;root&quot;</span><span>);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>ds.setPassword(</span><span class="string">&quot;1234&quot;</span><span>);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>Connection&nbsp;actualCon&nbsp;=&nbsp;ds.getConnection();&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p><font face="Arial"><strong>小结</strong> </font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp; 不管采用何种持久化技术，都需要定义数据源。Spring附带了两个数据源的实现类包，你可以自行选择进行定义。在实际部署时，我们可能会直接采用应用服 务器本身提供的数据源，这时，则可以通过JndiObjectFactoryBean或jee命名空间引用JNDI中的数据源。 </font></p>
<p><font face="Arial">DBCP与C3PO配置的区别：</font></p>
<p><font face="Arial">C3PO ：</font><font face="Arial">DBCP：</font></p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;com.mchange.v2.c3p0.ComboPooledDataSource&quot;</span><span>&nbsp;</span><span class="attribute">destroy-method</span><span>=</span><span class="attribute-value">&quot;close&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;driverClass&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>oracle.jdbc.driver.OracleDriver</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;jdbcUrl&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>jdbc:oracle:thin:@10.10.10.6:1521:DataBaseName</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;user&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>testAdmin</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;password&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>123456</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dataSource&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;org.apache.commons.dbcp.BasicDataSource&quot;</span><span>&nbsp;</span><span class="attribute">destroy-method</span><span>=</span><span class="attribute-value">&quot;close&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;driverClassName&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>oracle.jdbc.driver.OracleDriver</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;url&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>jdbc:oracle:thin:@10.10.10.6:1521:DataBaseName</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;username&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>testAdmin</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;password&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>123456</span><span class="tag">&lt;/</span><span class="tag-name">value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
</p>
<div class="code_title">xml 代码</div>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/115221#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 22 Aug 2007 12:08:10 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/115221</link>
        <guid>http://yonguo.javaeye.com/blog/115221</guid>
      </item>
      <item>
        <title>hibernate配置数据库连接池的三种方法 </title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/114891" style="color:red;">http://yonguo.javaeye.com/blog/114891</a>&nbsp;
          发表时间: 2007年08月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="postTitle"><img src="http://blog.csdn.net/images/zhuan.gif" border="0" height="13" alt="" width="15" />&nbsp;<a href="http://blog.csdn.net/derpvailzhangfan/archive/2007/04/15/1565595.aspx">blog.csdn.net/derpvailzhangfan/archive/2007/04/15/1565595.aspx</a></div>
<div class="postTitle"></div>
<div class="postTitle"></div>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/114891#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 21 Aug 2007 15:22:18 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/114891</link>
        <guid>http://yonguo.javaeye.com/blog/114891</guid>
      </item>
      <item>
        <title>Lucene2.0与lucene1.4的比较</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/114702" style="color:red;">http://yonguo.javaeye.com/blog/114702</a>&nbsp;
          发表时间: 2007年08月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h4 class="TextColor1" id="subjcns!2bcd0a2f8fe0765!442" style="MARGIN-BOTTOM: 0px">&nbsp;</h4>
<div class="bvMsg" id="msgcns!2bcd0a2f8fe0765!442">前阵子说看了Ajax＋Lucene之后就写读后的体会的，但是事情多，一直拖到了现在。<br />
简单就写一点2.0与1.4之间最常用的地方的改变<br />
1.4中doc.add(Field.text(...))之类的写法，是往document中加feild的时候，直接调用Filed的static方法<br />
由以下几种<br />
Field.Text(...)<br />
Field.Keyword(...)<br />
Field.Unindexed(...)<br />
Field.UnStored(...)<br />
虽然在1.4中也提供了Field的构造方法的时候支持不同类型的Field，但是常见的还是采用上面的static的方法<br />
来达到对field<span>是否切词、是否索引、是否存储</span>的处理<br />
但是在2.0中，doc.add(new Field(.....))的方法来加field的处理，主要有几个常量来指定对field的处理，Field.Index.YES<br />
Field.Store.YES.....之类的方式<br />
<br />
在解析的时候，<br />
构建Query对象进行查询<br />
在1.4中是这么做的<br />
Query query = null;<br />
query = QueryParser.parse(&quot;...&quot;,&quot;...&quot;,new StandardAnalyzer());<br />
但是在2.0中要这么写<br />
QueryParser parser = new QueryParser(&quot;...&quot;,new StandardAnalyzer());<br />
query = parser.parse(&quot;...&quot;);<br />
看上去好像没有什么太大的不一样，但是事实上仔细想想，后者的接口设计更合理。<br />
这也是API设计中很重要的地方，给client程序员最大的便利<br />
<br />
还有其他很多不一样的地方，但是这两个地方的不一样是你在构建简单的lucene应用中一定会遇到的</div>
<div class="bvMsg"></div>
<div class="bvMsg"></div>
<div class="bvMsg">引用：<a href="http://goodtiger1986.spaces.live.com/blog/cns!2bcd0a2f8fe0765!442.entry#trackback">goodtiger1986.spaces.live.com/blog/cns!2bcd0a2f8fe0765!442.entry#trackback</a><a href="http://goodtiger1986.spaces.live.com/blog/cns!2bcd0a2f8fe0765!442.entry#trackback"></a></div>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/114702#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 21 Aug 2007 10:48:47 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/114702</link>
        <guid>http://yonguo.javaeye.com/blog/114702</guid>
      </item>
      <item>
        <title>Tomcat 部署web应用方法总结 </title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/114700" style="color:red;">http://yonguo.javaeye.com/blog/114700</a>&nbsp;
          发表时间: 2007年08月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          tomcat部署web应用主要有以下几种方式：<br />
<br />
1．拷贝你的WAR文件或者你的web应用文件夹（包括该web的所有内容）到$CATALINA_BASE/webapps目录下。<br />
2．为你的web服务建立一个只包括context内容的XML片断文件，并把该文件放到$CATALINA_BASE/webapps目录下。这个web应用本身可以存储在硬盘上的任何地方。这种context片断提供了一种便利的方法来部署web应用，你不需要编辑server.xml，除非你想改变缺省的部署特性，安装一个新的web应用时不需要重启动Tomcat。<br />
3． 同方法2,只是将context片断放在CATALINA_BASE\conf\Catalina\localhost目录下.这种方法比方法2&gt;要有效,笔者经过多次实验发现方法2不如后面这种方法好用.前者多次出现系统打不开的情况.<br />
4．直接在server.xml中&lt;/Host&gt;前加上Context片断,使用这种方法时,tomcat会自动在CATALINA_BASE\conf\Catalina\localhost目录下生成一个文件片断.方法同方法3具有同样效果.这种方式需要将ROOT目录删除才行.<br />
<br />
另外，为了让tomcat只运行conf/server.xml中指定的web应用，可以有以下几种办法：<br />
实现一:<br />
&nbsp;&nbsp;&nbsp;&nbsp; 1)将要部署的WEB应用放在webapps以外的路径, 并在server.xml相应的context中的docBase指定.<br />
&nbsp;&nbsp;&nbsp;&nbsp; 2)删除webapps中的所有文件夹, 以及conf/catalina/localhost下所有xml文件.<br />
&nbsp;&nbsp;&nbsp;&nbsp; 注: webapps是server.xml中的Host元素的appBase属性的值.&nbsp;<br />
实现二:<br />
&nbsp;&nbsp;&nbsp;&nbsp; 1) 修改server.xml中Host元素的属性, 添加或修改: deployXML=&quot;false&quot; deployOnStartup=&quot;false&quot; autoDeploy=&quot;false&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp; 2) 含义:<br />
&nbsp;&nbsp;&nbsp;&nbsp; deployXML=&quot;false&quot;: 不部署conf/catalina/localhost下的xml相应的WEB应用&nbsp;&nbsp;&nbsp;&nbsp; deployOnStartup=&quot;false&quot; : tomcat启动时, 不部署webapps下的所有web应用&nbsp;&nbsp;&nbsp;&nbsp; autoDeploy=&quot;false&quot;: 避免tomcat在扫描改动时, 再次把webapps下的web应用给部署进来.<br />
<br />
<p id="TBPingURL">Trackback: <a href="http://tb.blog.csdn.net/TrackBack.aspx?PostId=1751263">http://tb.blog.csdn.net/TrackBack.aspx?PostId=1751263</a></p>
          <br/>
          <span style="color:red;">
            <a href="http://yonguo.javaeye.com/blog/114700#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 21 Aug 2007 10:43:42 +0800</pubDate>
        <link>http://yonguo.javaeye.com/blog/114700</link>
        <guid>http://yonguo.javaeye.com/blog/114700</guid>
      </item>
      <item>
        <title>配置Log4j</title>
        <author>yonguo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yonguo.javaeye.com">yonguo</a>&nbsp;
          链接：<a href="http://yonguo.javaeye.com/blog/113473" style="color:red;">http://yonguo.javaeye.com/blog/113473</a>&nbsp;
          发表时间: 2007年08月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font size="2" face="Arial">转载地址：<font face="Arial"><a href="http://www.blogjava.net/zJun/archive/2006/06/28/55511.html">http://www.blogjava.net/zJun/archive/2006/06/28/55511.html</a></font></font></p>
<p><font size="2" face="Arial">Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的，它可接key=value格式的设置或xml格式的设置信息。通过配置，可以创建出Log4J的运行环境。<br />
<br />
<strong>1. 配置文件</strong><br />
Log4J配置文件的基本格式如下： </font></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><font size="2" face="Arial"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" /> </font><font face="Arial"><font size="2"><span style="COLOR: #000000">#配置根Logger<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />log4j.rootLogger&nbsp;</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">&nbsp;</span> <span style="FONT-WEIGHT: bold; COLOR: #800000">[</span> <span style="COLOR: #800000">level</span> <span style="FONT-WEIGHT: bold; COLOR: #800000">]</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #000000">,</span> <span style="COLOR: #000000">&nbsp;appenderName1</span> <span style="COLOR: #000000">,</span> <span style="COLOR: #000000">&nbsp;appenderName2</span> <span style="COLOR: #000000">,</span> </font></font><font face="Arial"><font size="2"><span style="COLOR: #000000">&nbsp;&hellip;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />#配置日志信息输出目的地Appender<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />log4j.appender.appenderName&nbsp;</span> <span style="COLOR: #000000">=</span> </font></font><font face="Arial"><font size="2"><span style="COLOR: #000000">&nbsp;fully.qualified.name.of.appender.class&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />　　log4j.appender.appenderName.option1&nbsp;</span> <span style="COLOR: #000000">=</span> </font></font><font face="Arial"><font size="2"><span style="COLOR: #000000">&nbsp;value1&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />　　&hellip;&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />　　log4j.appender.appenderName.optionN&nbsp;</span> <span style="COLOR: #000000">=</span> </font></font><font face="Arial"><font size="2"><span style="COLOR: #000000">&nbsp;valueN&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />#配置日志信息的格式（布局）<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />log4j.appender.appenderName.layout&nbsp;</span> <span style="COLOR: #000000">=</span> </font></font><font face="Arial"><font size="2"><span style="COLOR: #000000">&nbsp;fully.qualified.name.of.layout.class&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />　　log4j.appender.appenderName.layout.option1&nbsp;</span> <span style="COLOR: #000000">=</span> </font></font><font face="Arial"><font size="2"><span style="COLOR: #000000">&nbsp;value1&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />　　&hellip;&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />　　log4j.appender.appenderName.layout.optionN&nbsp;</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">&nbsp;valueN&nbsp;</span> </font></font></div>
<br />
<font size="2" face="Arial">其中 <strong>[level] </strong>是日志输出级别，共有5级：<br />
</font><span style="COLOR: #000000"><strong>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><font size="2" face="Arial"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" /> <span style="COLOR: #000000">FATAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #000000">0</span> </font><font face="Arial"><font size="2"><span style="COLOR: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />ERROR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #000000">3</span> </font></font><font face="Arial"><font size="2"><span style="COLOR: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />WARN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #000000">4</span> </font></font><font face="Arial"><font size="2"><span style="COLOR: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />INFO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #000000">6</span> </font></font><font face="Arial"><font size="2"><span style="COLOR: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" />DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #000000">7</span> </font></font><span style="COLOR: #000000"><br />
<font size="2" face="Arial"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" alt="" /> </font></span></div>
<br />
<font size="2" face="Arial">Appender </font></strong><font size="2" face="Arial">为日志输出目的地，Log4j提供的appender有以下几种：<br />
</font>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; 