<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>读书空间</title>
    <description>喜欢读书的，都来这里吧。</description>
    <link>http://Book.group.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>同心协力 风雨无阻--多一份关爱,多一份希望</title>
        <author>weidewei</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wishlife.javaeye.com">weidewei</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/192754" style="color:red;">http://Book.group.javaeye.com/group/blog/192754</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>
<object classid="clsid:6bf52a52-394a-11d3-b153-00c04f79faa6" width="100" height="100" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701">
<param name="url" value="http://bbs.ws.cq.cn/usermp3/fywz.mp3" /><embed type="application/x-mplayer2" width="100" height="100" url="http://bbs.ws.cq.cn/usermp3/fywz.mp3"></embed>
</object>
&lt;风雨无阻&gt;这首歌送给灾区的人们,救灾的人们,以及那些在我们的生活中默默无闻,无私奉献爱心的人.为他们祈祷,希望大家都可以同心协力,一起为那些需要帮助的人们,为我们的国家付出自己应有的一份力量,也许相对于这次大灾难来说,我们个人的力量是很微薄的.但正是因为它的微薄,我们才可以更容易的付出,也许我们每个人这一点力量并不算什么,但对需要救助的人来说就是一份希望,一份关爱.只要我们真心地付出了,不管是多还是少,相信幸存下来的或者是那些不幸的人们,他们都会永远的记住并感谢这一份曾经来自大家的关爱与来自你的付出.捐献的方式很多(不过大家也要注意,有的人也想利用机会通过网上骗取钱财,那是非常不道德的!强烈谴责这些不道德的人!).我是通过<a href="http://www.taobao.com/cn/theme/site/scdz_080512.php">http://www.taobao.com/cn/theme/site/scdz_080512.php</a>捐献的.</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/192754#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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, 13 May 2008 23:09:06 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/192754</link>
        <guid>http://Book.group.javaeye.com/group/blog/192754</guid>
      </item>
          <item>
        <title>视频：现场直击 灾后救援正在进行 (四川卫视)</title>
        <author>天空不空</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liumingm.javaeye.com">天空不空</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/192678" style="color:red;">http://Book.group.javaeye.com/group/blog/192678</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p style="text-align: center;">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="465" height="362" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0">
<param name="src" value="http://6.cn/player.swf?flag=0&amp;vid=122CB8iId4aa9Xt/iFf4qw" /><embed type="application/x-shockwave-flash" width="465" height="362" src="http://6.cn/player.swf?flag=0&amp;vid=122CB8iId4aa9Xt/iFf4qw"></embed>
</object>
</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">现场直击 灾后救援正在进行</p>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/192678#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><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, 13 May 2008 18:45:07 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/192678</link>
        <guid>http://Book.group.javaeye.com/group/blog/192678</guid>
      </item>
          <item>
        <title>地震了</title>
        <author>isky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://isky.javaeye.com">isky</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/192238" style="color:red;">http://Book.group.javaeye.com/group/blog/192238</a>&nbsp;
          发表时间: 2008年05月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>大家有没有感觉到地址了？？？？？？？？？？？？？？？？？？？？？？ 我们这发生地震了&nbsp; </p>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/192238#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><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>Mon, 12 May 2008 14:52:04 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/192238</link>
        <guid>http://Book.group.javaeye.com/group/blog/192238</guid>
      </item>
          <item>
        <title>java解惑------增量操作</title>
        <author>liuwei1981</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liuwei1981.javaeye.com">liuwei1981</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/192230" style="color:red;">http://Book.group.javaeye.com/group/blog/192230</a>&nbsp;
          发表时间: 2008年05月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;下面的程序对一个变量重复的进行增量操作，然后打印它的值，那么打印输出是什么？</p>
<p>&nbsp;&nbsp;&nbsp; </p>
<pre name="code" class="java">public class Increment{
    public static void main(String[]  args){
      int j=0;
      for(int i=0;i&lt;100;i++){
         j = j++;
      }
      System.out.println(j);
   }
}</pre>
<p>&nbsp;&nbsp; 乍一看，这个程序输出是100，但实际运行后，输出为0.</p>
<p>&nbsp;&nbsp; 问题就是在增量操作的语句上：</p>
<p>&nbsp;</p>
<pre name="code" class="java">         j = j++;
</pre>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; 当++操作符被置于一个变量值之后，其作用是一个后缀增量操作符：表达式j++的值等于j在执行增量操作之前的初始值，因此，这个语句首先保存j的值，然后将j设置为其值加一，最后将j复位到它的初始值，换句话说，这个赋值操作等价于下面的语句序列：</p>
<p>&nbsp;&nbsp;&nbsp; </p>
<pre name="code" class="java">int tmp = j;
j = j + 1;
j = tmp;</pre>
<p>&nbsp;</p>
<p>程序重复100次之后，j的值还是等于它在循环之前的值，即0；</p>
<p>修正这个程序只需从循环中移除无关的赋值操作，只留下：</p>
<pre name="code" class="java">for(int i=0;i&lt;100;i++){
   j++;
}</pre>
<p>&nbsp;</p>
<p>不要在单个的表达式中对相同的变量赋值超过一次。</p>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/192230#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><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, 12 May 2008 14:30:51 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/192230</link>
        <guid>http://Book.group.javaeye.com/group/blog/192230</guid>
      </item>
          <item>
        <title>郑州“国色天香”颁奖晚会 俄罗斯魔鬼男高音vitas独唱</title>
        <author>天空不空</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liumingm.javaeye.com">天空不空</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/191928" style="color:red;">http://Book.group.javaeye.com/group/blog/191928</a>&nbsp;
          发表时间: 2008年05月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2008年5月2日播出的在河南郑州举行的国色天香2008中国国内旅游交易会欢迎晚会暨国际旅游小姐冠军总决赛颁奖晚会，维塔斯演唱《歌剧2》和《我的天鹅》。</p>
<p>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0">
<param name="src" value="http://player.youku.com/player.php/sid/XMjYxODcwMDg=/v.swf" /><embed type="application/x-shockwave-flash" width="480" height="400" src="http://player.youku.com/player.php/sid/XMjYxODcwMDg=/v.swf"></embed>
</object>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/191928#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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>Sun, 11 May 2008 13:52:09 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/191928</link>
        <guid>http://Book.group.javaeye.com/group/blog/191928</guid>
      </item>
          <item>
        <title>四大天王版——当年情（怀念张国荣，经典中的经典）</title>
        <author>天空不空</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liumingm.javaeye.com">天空不空</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/191554" style="color:red;">http://Book.group.javaeye.com/group/blog/191554</a>&nbsp;
          发表时间: 2008年05月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="480" height="400"><param name="movie" value="http://player.youku.com/player.php/sid/XNjQyNjI4/v.swf" /><param name="quality" value="high" /><param name="menu" value="false" /><param name="wmode" value="" /><embed src="http://player.youku.com/player.php/sid/XNjQyNjI4/v.swf" wmode="" quality="high" menu="false" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="480" height="400"></embed></object>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/191554#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><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 09 May 2008 19:57:47 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/191554</link>
        <guid>http://Book.group.javaeye.com/group/blog/191554</guid>
      </item>
          <item>
        <title>“出老千”工具揭秘(图)</title>
        <author>天空不空</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liumingm.javaeye.com">天空不空</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/191202" style="color:red;">http://Book.group.javaeye.com/group/blog/191202</a>&nbsp;
          发表时间: 2008年05月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <img src="http://cimg20.163.com/cnews/2008/5/8/20080508062157b1fcb.jpg" /><br /><br />新华网5月8日报道 电影《赌神》结尾：帅气的周润发取下隐形眼镜弹在对手身上。“德国最新液晶显影眼镜”的高科技形象顿时在影迷心中留下了深刻的印象。<br /><br />确实，很多时候，“赌神”们其实更多依靠的不是技术，而是“设备”。<br /><br />5月6日，咸阳警方接到线索后，在渭城区的老居民区发现了一个制造“赌博出千”工具的窝点，并将制造赌具的犯罪嫌疑人袁某抓获。在袁某租住的两层小楼内，可以看到各式各样的出千赌具，小到做了特殊记号的扑克牌、麻将，大到利用高科技的针孔摄像头、X光机、信号接收设备等，以达到团伙配合作弊的目的，可以说将如今各种作弊与欺骗的工具方法都包含在内了。看到这些，你会真正明白十赌九诈这个词确实正确。<br /><br />有意思的是，袁某还印有产品的宣传资料，在这份名为“千必胜”的资料上，对作弊的赌博工具的分类和效果有着详细介绍。不仅如此，他自己也印有名片，上面赫然印着“广州千变武汉陈氏娱乐公司北方总代理”头衔。事实上，袁某不仅代理，而且自己也加工制造作弊赌具，他的窝点有5个房间，每个房间制作不同的设备。目前，袁某因涉嫌诈骗被警方刑拘。就在警方查获该窝点期间，还有两个“客户”来到袁某的店里，想制作能作弊的自动麻将机。<br /><br />虽然此前曾有媒体对作弊赌具有过一些介绍，但如此系统全面的各种作弊赌具的查获在全国仍然少见。在咸阳警方和一位“业内人士”的介绍下，记者了解了各种作弊赌具的作弊方法和原理，并将其介绍给大家，以揭露这一地下行业的秘密。<br /><br />一、自动麻将桌<br /><br />这种自动麻将桌设有作弊程序，可以通过掷骰子时按钮的次数和时间长短确定自己得到怎样的牌。其说明书上有“无需遥控器，单人操作，无掉牌声，隐蔽性强，磁铁感应；包自摸，包中财神”的介绍。“业内人士”说，只需设定好作弊程序，就可通过磁性控制麻将的组合。<br /><br />除了通过按钮外，还可以通过遥控器控制麻将的组合。还有一种麻将桌虽然不是自动的，但通过设在麻将桌四个边缘的针孔摄像头，可以将对方的牌看得一清二楚。<br /><br />二、隐形眼镜<br /><br />这就是影迷最熟悉的“发哥”当年用的“隐形显影眼镜”。通过眼镜可以看到在牌上做的记号，“赌神”们能够根据牌的好坏做出自己的判断。不过据“业内人士”讲，这一产品已经“不先进”了，正是由于大家都看过类似的电影，这一作弊方法最容易被怀疑和发现，他们已经慎用了。仅就这类产品而言，也和普通的隐形眼镜一样，透气性好的价格贵，透气性差的价格便宜。<br /><br />三、骰子<br /><br />骰子是赌博中常用的工具，因此在此案现场，警方发现了各式各样能作弊的骰子。<br /><br />“密码骰子”：骰子内置有磁感自控芯片，在一定的角度下旋转，将骰子打出，骰子停后就是自己想要的点数。外包装为“第四代三门”的密码骰子，可以让打麻将者自如选择想找的对家。<br /><br />“定点骰子”：使用前只要先在台子上把骰子碰一下，骰子的哪一面朝上，就是几点。<br /><br />“可捶骰子”：该骰子内放有类似“钴”的稀有元素，可以通过传感器感应到抹有该元素的面，从而了解点数。同时因为该元素与一般骰子的质地很相似，当有人怀疑作弊时，就是把骰子砸开，也看不出异样，因此叫做“可捶骰子”。<br /><br />四、透视骰盅<br /><br />此骰盅具有磁性，其底部可在充电后控制内有线圈的骰子。这类骰子相对较为简单，只能控制单双点，不过也已经足够。<br /><br />五、“飘三叶”作弊设备<br /><br />最令人吃惊的要数为“飘三叶”所做的作弊设备了。“飘三叶”也称“扎金花”，它需要几个人的默契配合才能奏效。<br /><br />此种骗人方法是：不参与赌博的人通过皮带扣上的特制摄像头观察所有人的牌面，扑克牌都经过特殊激光处理，通过房外的接收器传到屋外接收电视的画面上，屋外人根据每个人的牌面大小，向参赌的同伙发送信号。参赌同伙身上都配有传感器，传感器接收信号后会振动。<br /><br />据“业内人士”讲，一般而言，“振动一下是大牌，两下是小牌，三下是跑，长时间振动就是很大的牌”。如此一来，参赌同伙就可以心中有数，甚至可以一开始就将牌“黑”着不看，不断加大筹码，让对方血本无归。据介绍，屋外发送信号的接收器，大功率的在100米内都有效，让人防不胜防。<br /><br />六、各种形式的作弊扑克<br /><br />扑克牌是最常见的赌博工具，在扑克牌上作弊的设计也是花样翻新。如果不需要另外的工具辅助，仅仅依靠一些小的修改，就可以在扑克牌背面一些不引人注意的角落留下记号。熟悉了这些记号后，就能掌握每个人牌的好坏。<br /><br />而如果借助工具，则可以通过显影眼镜或特别镜头甚至是X光设备等看到牌后，用显影药水或激光做出特别效果，这样更加简单明显。<br /><br />据警方讲，除上述设备外，赌博场所内，吊顶灯、闹钟、墙画等处往往安装有微型摄像头，可让操控者掌握一切情况。<br /><br />在看过这么多让“赌神”们逢赌必胜的法宝后，记者只想提醒好赌者：最好的方法就是洁身自好，远离赌博。
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/191202#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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, 08 May 2008 20:28:09 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/191202</link>
        <guid>http://Book.group.javaeye.com/group/blog/191202</guid>
      </item>
          <item>
        <title>从金融学的角度看“重构”</title>
        <author>tuti</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://tuti.javaeye.com">tuti</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/190154" style="color:red;">http://Book.group.javaeye.com/group/blog/190154</a>&nbsp;
          发表时间: 2008年05月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          前些日子在InfoQ看到篇文章 "抛砖引玉&mdash;&mdash;重构是必要的浪费" <a href="http://www.infoq.com/cn/news/2007/12/refactoring-is-waste" target="_blank">http://www.infoq.com/cn/news/2007/12/refactoring-is-waste</a>.<br />文中认为 &ldquo;重构并不能为客户创造可衡量的价值。所以将重构归为必要的浪费。<br />个人觉得这样的解读很牵强，也有悖于精益的基本精神。<br /><br />我觉得问题核心在于重构对于客户创造了什么价值。<br />近日从金融学的角度来进行分析，略有所悟。<br /><br />重构其实提供了“需求变化”的“看多期权”（call）--事实上还提供了其他多种变化的看多期权。需求变化的可能性越大，这份期权就价值越高。而在金融市场上充满了明码标价的期权交易。<br /><br />以TDD的三步骤(不可运行，可运行，重构)为例，可以看做实现一个功能的“现货价值”并附加该功能需求变化的“看多期权”。 而只完成功能要求程序，不进行重构，只能看单纯含有一个功能的“现货价值”。<br />对于客户而言，附加有“需求变化看多期权”的程序价值要高于只含“现货价值”的程序。<br />对于“需求变化看多期权”最坏的情况也就是“需求不变化”，这份期权就没必要行使。<br />这就是“需求稳定项目（如：学校大作业）”和“需求总是与时俱进的项目”在开发行为上存在差异的原因之一。<br /><br />事实上，我觉得软件项目开发，充满了时间序列上的发生的不确定性，项目的过程中需要不断的吸收这种不确定性，并追求项目达到更高的价值。这种情况很适合以金融学的视角进行分析。
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/190154#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><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, 06 May 2008 13:07:22 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/190154</link>
        <guid>http://Book.group.javaeye.com/group/blog/190154</guid>
      </item>
          <item>
        <title>java解惑--动物庄园</title>
        <author>liuwei1981</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liuwei1981.javaeye.com">liuwei1981</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/190085" style="color:red;">http://Book.group.javaeye.com/group/blog/190085</a>&nbsp;
          发表时间: 2008年05月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java"> 下面的java程序打印结果是什么？</pre>
<pre name="code" class="java">public class AnimalFarm{
   public static void main(String[] args){
        final String pig = "length: 10";
        final String dog = "length: "+pig.length();
        System.out.println("Animal are equal:" +pig == dog);  
    }
}</pre>
<p>&nbsp;&nbsp;&nbsp;&nbsp;对这个程序进行表面分析后，可能会认为它应该打印Animal are equal： true。毕竟，pig和dog都是final的String类型变量，他们都被初始化为字符串序列&ldquo;length：10&rdquo;。换句话说，被pig和dog引用的字符串是且永远是彼此相等的。然而，==操作符并不测试两个对象是否相等，它测试的是两个对象的引用是否相同。在本例中，他们并非引用到同一个对象。</p>
<p>&nbsp;&nbsp; String类型的编译期常量是内存限定的，任何两个String类型的常量表达式，如果指定的是相同的字符序列，那么他们就用同一个对象引用来表示。如果常量表达式来初始化pig和dog，那么他们确实会指向相同的对象，但是dog并不是常量表示式初始化的，既然语言已经对在常量表达式中允许出现的操作做了限制，而方法调用又不在其中，那么，这个程序就应该打印 Animal are equal： false。</p>
<p>&nbsp; 实际上仍然不对，运行该程序，就会发现它打印的只是false，并没有其他的东西。它没有打印Aniaml are equal：，它怎么不打印这个字符串常量呢？毕竟要打印它才是正确的，+操作符在这里出现了问题，不论式用着将加法还是字符串链接操作，它都比==操作符优先级高，应此，println方式的参数实际上式按照下面的方式计算的：</p>
<pre name="code" class="java">System.out.println(("Animal are equal:"+pig)==dog);</pre>
<p>&nbsp;&nbsp;&nbsp; 这个布尔表达式的值当然是false有一个能够避免此类错误的方式，<strong>在使用字符串连接操作符时候，总是将不平凡的操作时用括号括起来</strong>。</p>
<p>&nbsp;&nbsp; 如果可以的话，<strong>你的代码应该很少依赖于字符串常量的内存限定机制</strong>。</p>
<p>&nbsp;&nbsp; 在<strong>比较对象引用的时候，应该优先使用equals方法而不是==操作符，除非需要比较的是对象的标识而不是对象的值</strong>。很明显，在按照以上原则修改之后，它将打印true：<br />&nbsp;&nbsp;&nbsp; </p>
<pre name="code" class="java">System.out.println("Animal are equal:" +pig.equals(dog));</pre>
<p>&nbsp;</p>
<p>&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/190085#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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, 06 May 2008 11:34:43 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/190085</link>
        <guid>http://Book.group.javaeye.com/group/blog/190085</guid>
      </item>
          <item>
        <title>奥运会官方MV《北京欢迎你》（群星）</title>
        <author>天空不空</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liumingm.javaeye.com">天空不空</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/189997" style="color:red;">http://Book.group.javaeye.com/group/blog/189997</a>&nbsp;
          发表时间: 2008年05月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          MV：<br /><br /><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="512" height="442"><param name="movie" value="http://www1.pomoho.com/play.swf?flvid=1532772" /><param name="quality" value="high" /><param name="menu" value="false" /><param name="wmode" value="" /><embed src="http://www1.pomoho.com/play.swf?flvid=1532772" wmode="" quality="high" menu="false" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="512" height="442"></embed></object><br /><br />晚会：<br /><br /><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="512" height="442"><param name="movie" value="http://www1.pomoho.com/play.swf?flvid=1531259" /><param name="quality" value="high" /><param name="menu" value="false" /><param name="wmode" value="" /><embed src="http://www1.pomoho.com/play.swf?flvid=1531259" wmode="" quality="high" menu="false" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="512" height="442"></embed></object>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/189997#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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, 06 May 2008 09:14:44 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/189997</link>
        <guid>http://Book.group.javaeye.com/group/blog/189997</guid>
      </item>
          <item>
        <title>详讯：微软宣布放弃收购雅虎</title>
        <author>天空不空</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liumingm.javaeye.com">天空不空</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/189169" style="color:red;">http://Book.group.javaeye.com/group/blog/189169</a>&nbsp;
          发表时间: 2008年05月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 北京时间5月4日消息，微软发言人今早宣布，因价格未达成一致，正式放弃收购雅虎。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 消息人士透露，在微软宣布放弃收购当天，鲍尔默与雅虎两位联合创始人杨致远和大卫-费罗在西雅图进行了会谈。鲍尔默将收购价增至每股33美元，但杨致远表示，不会以低于每股37美元的报价出售</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 微软CEO鲍尔默表示，自己在周六致雅虎的信中表示，愿意将收购报价提高至475亿美元，相当于每股33美元。鲍尔默表示，雅虎仍坚持至少530亿美元报价，相当于每股37美元。微软3个月前提出的报价为446亿美元，相当于每股31美元。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (新浪科技讯)</p>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/189169#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><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>Sun, 04 May 2008 09:23:55 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/189169</link>
        <guid>http://Book.group.javaeye.com/group/blog/189169</guid>
      </item>
          <item>
        <title>网页游戏迅速崛起 初创企业争抢百亿网游市场</title>
        <author>weidewei</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wishlife.javaeye.com">weidewei</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/188842" style="color:red;">http://Book.group.javaeye.com/group/blog/188842</a>&nbsp;
          发表时间: 2008年05月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">引用</div><div class="quote_div">本文来自:<a href="http://news.csdn.net/n/20080423/115378.html" target="_blank">http://news.csdn.net/n/20080423/115378.html</a></div><br /><br />4月23日消息，不到20人的团队，不到一年的时间，刘阳将它的我玩网估值带到了1亿元水平。2008年这家致力于代理和研发网页游戏的公司终于迎来盈利，但这仅仅才是开始，刘阳的目标是成为像盛大、九城一样的网游巨头。而对于两年前开始网页游戏的布局盛大，目前一款网页游戏的营收已丝毫不亚于一款成功的大型网游。 <br /><br />没有电脑配置要求，无需客户端、打开网页输入用户名和密码，就可以网页游戏对战。对于网页游戏的开发运营公司，他们无需考虑服务器和带宽的压力，不用考虑付出大量的人力成本。一个好的策划，少则3-5人团队，多则10余人的团队，就可以开始网络游戏的研发和运行。 <br /><br />这样模式对于很多创业企业无疑是一个机会。从2006年初始时的迷茫，到2007年网页游戏元年时的初露锋芒，再到今年的大举涌入，网页游戏在短短的两年间已经发展为一个增速最快的细化网游市场。 <br /><br />而据刘阳介绍，她代理的内容新颖的网页游戏，活跃用户数已经可以达到10万人，和一款中性大型网游相当，而每月200元/人的APUR值，也丝毫不逊色与《魔兽世界》、《梦幻西游》等优秀的大型网游。 <br /><br />据了解，盛大旗下的网页游戏《纵横天下》月营收已经达到了百万级，在盛大内部也排到整体游戏产品线的第三位。而这款游戏推出的时间还不过5个月，投入的精力也远远小于大型网游。 <br /><br />而以代理运营网页游戏为主的我玩网，在去年陆续和新浪、搜狐等门户网站签约，使得后者成为其网页游戏的推广平台。“并且他们都是主动找上门的。”刘阳补充。 <br /><br />昨日，百度酝酿一年之久的游戏娱乐平台也正式推出。包括《纵横天下》、《方便面三国》、《天空左岸》等在内的首批共七款免费网页游戏同时上线。 <br /><br />此外，包括九城、联众、网易、新浪、搜狐等网游运营商和门户网站，也都即将推出自主研发的网页游戏，并在各自的平台运营。在电子商务、Web2.0等模式后，网页游戏正成为一个新互联网商机。 <br /><br />盛大网络发言人诸葛辉表示，早在两年多前，盛大就已经在布局网页游戏市场。公司认为它将会成为未来网络游戏的发展方向之一。而通过《纵横天下》的成功运营，盛大也证实了它的成功，网页游戏在粘性、用户反馈均不亚于任何一款比较成功的大型网游。 <br /><br />诸葛辉用第一个吃螃蟹，并吃好了螃蟹来形容盛大在该领域的成绩。他并透露，《纵横天下》的成功，让盛大更加树立了信心，在这个快速成长的市场，盛大将会继续加大投入，以扩大市场规模。 <br /><br />不过并不是所有的网页游戏运营商和研发公司都可以像盛大和我要玩一样成功。 <br /><br />国内知名网页游戏研发公司嘟牛网CEO王征介绍，尽管有大量的公司进入，但是真正成熟的产品却非常少，优秀作品的产品特别是市场上形成规模性盈利的产品还比较少，很多网页游戏研发团队面临几个生死线的问题。 <br /><br />他说，网页游戏的成本不是特别高，但一个月若没有五到十万元的营收也非常痛苦，如果游戏卖不过这个生命线，生存堪忧。但在实际的运营中，市面上的游戏却大面积没有迈过这道生命线。而目前在做宣传的网页游戏开发商已经有50-60家，而实际的数量早已超过百家 <br /><br />而且大量的公司依然处于模仿和抄袭国外网页游戏的阶段，面对未来的市场要保持谨慎的乐观。同时面对拥有平台优势的腾讯、联众、盛大、新浪等，现有的网页游戏代理和运营商的竞争力也面临严峻考验。 <br /><br />诸葛辉表示，《纵横天下》能够获得成功和盛大平台化战略有着密不可分的关系，借助盛大网络游戏平台的影响力，不用做特别的市场营销，该游戏就有了大量的用户，这种规模效应使得盛大可以领先于竞争对手。 <br /><br />而百度推出游戏平台，依靠的也是其强大的用户基础。百度大客户部总监董安民表示，通过游戏平台的上线百度从幕后走到前台，愿意为大家做流量合作，将流量变为游戏厂商的价值。 <br /><br />来自百度方面的消息称，与该公司合作的网页游戏运营商，将会得到百度搜索优化。用户在搜索游戏时，百度会做相应的引导，以使得合作伙伴的游戏被用户发现。百度也将通过分成获得可观的收益。 <br /><br />不过刘阳也表示，07年到08年上半年，网页游戏将会是多国混战的阶段，市场也不一定完全非盛大、九城这样的传统大型网游公司所控。这些大公司都有自己原有的业务，在网页游戏的投入，可能还没有独立网页游戏公司投入得多，超大型公司掉头其实很难。 <br /><br />她相信一个相对独立和专业性的公司总有自己的生存空间。同时因为抢占的先机，一些用户也会先从独立运营商处获取最新网页游戏的信息。 <br /><br />王征也认为，与大型网游着重华丽的画面不同，网页游戏成功关键在创意，所以小公司并一定就逊色于大型网游运营商。同样网页游戏开发商，也可以借助腾讯、盛大的平台分成的形式获得更好的收益。 <br /><br />韩国专业性的机构的预测分析，2008年该国网页游戏占网游市场的比重，有望从2007年的5%，上升到27.5%。国内部分网页游戏开发商和运营商参照行业发展规律也预测，国内网页游戏市场规模未来3-4年内也有望占据网游整体收入的20%-30。 <br /><br />根据艾瑞的统计，2007年网络游戏整体收入达到128个亿，在未来的四到五年，网游还将持续20％以上的增幅。在2011年整个市场的规模预计将达到400个亿。网页游戏也有望达到120亿元的水平。
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/188842#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/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</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>Fri, 02 May 2008 14:53:55 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/188842</link>
        <guid>http://Book.group.javaeye.com/group/blog/188842</guid>
      </item>
          <item>
        <title>霸气而神秘!宝马全新概念车M ZERO亮相</title>
        <author>天空不空</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liumingm.javaeye.com">天空不空</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/188554" style="color:red;">http://Book.group.javaeye.com/group/blog/188554</a>&nbsp;
          发表时间: 2008年04月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><img src="http://cimg21.163.com/auto/2008/4/29/20080429111441045ac.jpg" border="0" alt="" /></p>
<p align="center">&nbsp;</p>
<p style="text-indent: 2em;" align="center">&nbsp;</p>
<p style="text-indent: 2em;" align="center"><a href="http://product.auto.163.com/car/series2/id=00080BSA0CdZ0BPL.html"><span style="color: #1f3a87;">宝马</span></a>概念车M ZERO</p>
<p style="text-indent: 2em;" align="center">&nbsp;</p>
<p><img src="http://cimg20.163.com/auto/2008/4/29/20080429111451f5f88.jpg" border="0" alt="" /></p>
<p>&nbsp;</p>
<p style="text-indent: 2em;">&nbsp;</p>
<p style="text-indent: 2em;">&nbsp;</p>
<p style="text-indent: 2em;">这部犹如黑色幽灵般的战车出自德国设计师Mael Oberkampf之手，是宝马最新亮相的概念车型。除了霸气而神秘的外观，宝马还为其取了一个含义颇多的名字&mdash;M ZERO。从这款车的外观上，我们已经看不出它与目前宝马旗下的两门跑车有什么联系。车尾部的造型和尾灯设计充满了迷幻色彩，长方形的双排气管成了除尾灯以外最吸引人目光的地方。</p>
<p style="text-indent: 2em;">&nbsp;</p>
<p style="text-indent: 2em;">只有它的前脸设计还能看出几分宝马的风格。双肾形格栅依然是它的身份证，而它的&ldquo;天使眼&rdquo;看上去则有几分秀气，相信在夜晚来临时，这双眼睛才会显露出它的原始本性。通过车身的侧面我们看到了几分<a href="http://product.auto.163.com/car/series2/id=00080BSA0CdZ0BPY.html"><span style="color: #1f3a87;">阿斯顿马丁</span></a>的影子，后轮极度外扩的轮眉使整车张力十足，配合流畅的裙边让它看起来更加蓄势待发。对于动力上的表现，其实并不需要什么怀疑。车头上蓝天白云的标志就能打消我们的一切顾虑，更何况它的名字中还有一个M，所以M5和M6上的V10发动机应该是个不错的选择。 (本文来源：汽车探索网 ) </p>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/188554#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><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, 30 Apr 2008 20:50:58 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/188554</link>
        <guid>http://Book.group.javaeye.com/group/blog/188554</guid>
      </item>
          <item>
        <title>天下第一牛！迪拜富豪的改装福特车，有如变形金刚</title>
        <author>天空不空</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liumingm.javaeye.com">天空不空</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/188553" style="color:red;">http://Book.group.javaeye.com/group/blog/188553</a>&nbsp;
          发表时间: 2008年04月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>真正的车迷往往是改装一族，有时改装的费用会超过原车本身的几倍。迪拜非常富有，街头有很多名车在驰骋。同样，迪拜也有很多改装汽车演绎着车中的神话。这里介绍一款老福特的改装杰作，不夸张地说，这是一辆天下第一牛的老福特。 <br /><br />　　<img src="http://img1.bbs.163.com/auto_aaac/da/daphney_hb/0fb294ec15a24431eb72dc9e23f01dc4.jpg" border="0" alt="" /> <br /><br />　　特别轮圈 <br /><br />　　<img src="http://img2.bbs.163.com/auto_aaac/da/daphney_hb/3b30826415390f4dcd0b6ee497093e8d.jpg" border="0" alt="" /> <br /><br />　　双排气管 <br /><br />　　<img src="http://img3.bbs.163.com/auto_aaac/da/daphney_hb/1ce31204bbf31c28acec2bc4e5be02ba.jpg" border="0" alt="" /> <br /><br />　　鸥翼前门 <br /><br />　　<img src="http://img1.bbs.163.com/auto_aaac/da/daphney_hb/8864d6bcf1f1c75cec48e587107a742d.jpg" border="0" alt="" /> <br /><br />　　<img src="http://img2.bbs.163.com/auto_aaac/da/daphney_hb/79e038668eaf39567bb52c3b24151609.jpg" border="0" alt="" /> <br /><br />　　鸥翼后门 <br /><br />　　<img src="http://img3.bbs.163.com/auto_aaac/da/daphney_hb/6ef522afc8ac800fb87364b1cff60c4e.jpg" border="0" alt="" /> <br /><br />　　<img src="http://img1.bbs.163.com/auto_aaac/da/daphney_hb/af933e1e6100596dd2532289bb189c1f.jpg" border="0" alt="" /> <br /><br />　　侧面看看鸥翼门 <br /><br />　　<img src="http://img2.bbs.163.com/auto_aaac/da/daphney_hb/d17cb3ee198a882f17cbf69a0c1843af.jpg" border="0" alt="" /> <br /><br />　　鱼尾后箱盖 <br /><br />　　<img src="http://img3.bbs.163.com/auto_aaac/da/daphney_hb/e916cd4478cecba367f94191662a22ad.jpg" border="0" alt="" /> <br /><br />　　奇特前盖板 <br /><br />　　<img src="http://img1.bbs.163.com/auto_aaac/da/daphney_hb/15f8ddda6bb5f55d157ca5c85ec80147.jpg" border="0" alt="" /> <br /><br />　　搞笑的尾灯 <br /><br />　　<img src="http://img2.bbs.163.com/auto_aaac/da/daphney_hb/56617b6c3b2acd505418fbb7901d9470.jpg" border="0" alt="" /> <br /><br />　　<img src="http://img3.bbs.163.com/auto_aaac/da/daphney_hb/05d036bb387fc8a3798cd31a0ba6a963.jpg" border="0" alt="" /> <br /><br />　　<img src="http://img1.bbs.163.com/auto_aaac/da/daphney_hb/0df93c0b0aa7cb45297fb3bca3891841.jpg" border="0" alt="" /> <br /><br />　　<img src="http://img2.bbs.163.com/auto_aaac/da/daphney_hb/90f675a26bd9958f165cbe4e83dcd026.jpg" border="0" alt="" /> <br /><br />　　眼花缭乱 <br /><br />　　<img src="http://img3.bbs.163.com/auto_aaac/da/daphney_hb/58676db9b72e86ee74a2586f6d5a3027.jpg" border="0" alt="" /> <br /><br />　　导航 <br /><br />　　<img src="http://img1.bbs.163.com/auto_aaac/da/daphney_hb/05a342a556e474856bb3aa23e99493eb.jpg" border="0" alt="" /> <br /><br />　　超级音响</p>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/188553#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><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, 30 Apr 2008 20:49:27 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/188553</link>
        <guid>http://Book.group.javaeye.com/group/blog/188553</guid>
      </item>
          <item>
        <title>胶济车殇十二幸存者忆翻车一刻 有人折断手臂求生</title>
        <author>天空不空</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liumingm.javaeye.com">天空不空</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/188551" style="color:red;">http://Book.group.javaeye.com/group/blog/188551</a>&nbsp;
          发表时间: 2008年04月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><strong>T195次11号车厢硬卧</strong> <br /><br />　　<strong>朱姓学生：为了把卡住自己胳膊的扶手取开，我折断了自己的胳膊</strong> <br /><br />　　我是去北京参加考研复试后回家，当时晚上4点多，天黑，我在车上睡着了。感觉到车忽然一偏，人顺着车滑下去，头部碰到扶手，然后就什么都不知道了。我昏迷了大约十几分钟，自己醒来了。弹簧座椅夹住了我的脖子。上铺，中铺整个床板断裂了，椅子也不在墙壁上了。下铺的人直接被砸死了。我是学医的，当时的第一意识就是求生。我尝试感觉脖子旁边的东西能活动，于是轻轻把它搬开，把脖子取了出来。身上被座椅还有扶梯，还有被子压着。为了把卡住自己胳膊的扶手取开，我折断了自己的胳膊。这时有个男的从我身边爬过，当时我看他很正常，我哀求他帮忙把我也拖了出来。 <br /><br />　　<strong>T195次11号车厢硬卧中铺 <br /><br />　　宋小姐：法国小女孩很热心，她我饮料让我漱去口中的鲜血</strong> <br /><br />　　夜里发生剧烈震动，人左右晃动，似乎在坐过山车。我下铺的人说了最后一句话，&ldquo;这怎么回事&rdquo;，后来就没听到声音了。所有玻璃都碎了，我从床上滑下后，下巴先落地，牙齿全碎了，头当时就懵了，眼前一片黑。车厢内所有的床板，窗户，扶手，椅子全部脱离了位置。我倒地后玻璃扎入嘴里，当时没有任何感觉，以为嘴巴里面都是沙子。当时天已经开始亮了，我能看到窗户外的光线，于是顺着窗户往外爬，但没有任何力气移动。我对面下铺的老太太为了护住小孩子，全身压住孩子，床板断了，老太太被压死了。小孩在老人怀里哭。我赶紧喊人，这时一个警察爬了进来，先把小孩拉了出去。<strong>我隔壁的是三个法国人，他们似乎自我保护意识很强。是一对法国夫妇和她的女儿，他们的女儿没有受任何伤，小姑娘最先从窗户里跳了出来，然后帮助她的爸爸妈妈也爬了出去。小女孩很热心，我被警察救了出去后，她用英语也用法语对我说话，并给我饮料让我漱去口中的鲜血。</strong>当时外面哭着喊着的人太多，身边所有的人都受伤了，根本无法救助别人。一些男的还是比较有优势，自己爬了出来还能喊着并组织救人。 <br /><br />　　<strong>T195次13号车厢硬卧 <br /><br />　　吴姓学生：当时我就想怎么逃命，车里面漆黑一片，完全凭感觉</strong> <br /><br />　　我是山东科技大学学生，从北京实习结束后青岛。事故发生时，车厢剧烈晃动，把我从睡梦中惊醒。当时没有声音，只有车厢左右剧烈晃动。我预感车要翻，于是赶紧抓紧扶手，等车厢不晃时果然就翻了。床上的东西，还有行李架上的东西都砸下来了。脖子被东西砸到，我挣脱重负，从底部的窗户爬了出来。车厢上的玻璃扎到我后背，我自己都没有感觉出来。事故发生时车厢内一片混乱，女孩吓得什么声音都有。当时我就想逃出来，使出全身力气爬了出来。当时我就想怎么逃命。车里面漆黑一片，完全凭感觉。我也不知道什么砸了我。我是车厢第一个爬出来的，能感觉到脚下有人的身体。我睡的是上铺。爬了出来才发现外面伤亡巨大。目前家人已经通知，学校领导也来看了我。当时只感觉车要出问题，没有细想。爬出来后坐在外面感到有些冷，于是从散落在外面的废墟中找到被子。 <br /><br />　　<strong>T195次14号车厢硬卧下铺 <br /><br />　　王先生：爬出来后感觉到外边的寒冷，人们纷纷挤在一起取暖</strong> <br /><br />　　我当时在16号车厢硬卧上铺，左右摆动非常大，比拐弯大。我平时睡觉比较警醒，当时就醒了。我看到行李架上的箱子开始滑动，感觉很不一样，于是抓住栏杆。这时听见&ldquo;哐&rdquo;的一声，车翻了。我们的16车厢侧翻了。爬出来后，我们感觉到外边的寒冷，人们纷纷挤在一起取暖并等待救助。当时到处都是哭救声，我们却爱莫能助，一点力气没有。 <br /><br />　　<strong>烟台至徐州5034次列车3号硬座车厢 <br /><br />　　苏先生：感觉到有人踩着我身上爬了过去</strong> <br /><br />　　当时在睡觉，只觉得天旋地转，一阵巨响把我惊醒，睁眼一看，车厢内冒烟，有种发糊的味道散发出来。当时人们全部争先恐后地离开座位，走到座位之间的走廊。中间的人被推倒，随后被践踏。我当时被后面的人一推，然后就倒地了。随后便有人踩着我身上爬了过去。 <br /><br />　　<img src="http://img1.bbs.163.com/shishi/st/studentadmin/b648e77394b72e0972bfa2434c7c4ca2.jpg" border="0" alt="" /> <br /><br />　　苏先生：感觉到有人踩着我身上爬了过去 <br /><br />　　<strong>T195次11号车厢硬卧 <br /><br />　　赵小姐：没有人知道到底发生了什么，所有的人都不停地尖叫</strong> <br /><br />　　凌晨4点左右感到火车像是在绕曲线，火车加速后好像有些摇摆，然后就出轨了。没有人知道到底发生了什么，所有的人都不停地尖叫。接着车厢一端翘了起来，里面有人从床铺摔下，也有东西破裂的声音。后来就是有人的呻吟声，车厢内有许多重伤员，其中有许多人骨折。我的衣服上沾了不少液体类的东西，天亮后才发现是血液。当时整个车厢内都是哭天哀地的声音。我这时才发觉已经滑落，自己被压在行李下面。 <br /><br />　　<strong>T195次从硬座车厢来到8号餐车休息 <br /><br />　　王先生：我当时就吐了，好似一部灾难片</strong> <br /><br />　　夜里2点，我从硬座车厢来到餐车休息，忽然听见火车咔嚓一声巨响，刚才过来的那一节车厢断了，后面的数节车厢眼看着就要翻。车停后，我们跑下来救人，第一次见死人。12、13、14车厢，伤亡惨重，前面所有车厢的男人都去救人了，但是只救了不到20人，我当时就吐了，好似一部灾难片。乘务员当时就吓哭了。现场一片狼藉，有个女人找不到自己的孩子，都快疯了。有个男人只有身子，头都没有了。那么多躺在地上的人，不知是死是活，到处都是血。 <br /><br />　　<img src="http://img2.bbs.163.com/shishi/st/studentadmin/eb047a897dd3120a5ae008e99f6285a0.jpg" border="0" alt="" /> <br /><br />　　王先生用手机拍下了车祸后的现场视频，这是一张截图 <br /><br />　　<strong>烟台至徐州5034次列车3号硬座车厢 <br /><br />　　车厢损毁情况：列车空悬挂在路基 <br /><br />　　马先生：看见火车空隙下压着人，只剩下半截身体</strong> <br /><br />　　第一第二节车厢已经掉下去了，我的车厢空悬。我们车厢受伤的人不多。掉下去的车厢幸亏是掉在庄稼地，要是从桥上落到地上后果不堪设想。事故是4点多发生的，我刚接过电话睡了，然后听到火车急刹，然后就是格挡的声音，然后就是很大的咣当声，这个时候人已经乱了，我站起来对大伙说，抓紧扶手，别慌张。这个时候车厢猛然一晃，我手没有抓住，胸部撞击到椅子后背，头部撞到栏杆。过了一会，人们扒着窗户往下跳。我的老家是徐州，这次接孩子从烟台回家，所以儿子也在车厢里。最后是儿子扶着我从旁侧的门走下来。当时有人喊救命，看见火车空隙下压着人，只剩下半截身体。事发时，没有想到任何事情。 <br /><br />　　<strong>T195次10号车厢软卧上铺 <br /><br />　　张先生：我觉得我受伤比较轻，和软卧车厢有关系</strong> <br /><br />　　我和爱人在上铺，闺女在下铺，对面是一个母亲和孩子。车在翻动之前就有预兆，好像在拐一个大弯，听见咣当的声音。火车猛然晃动后，车就侧翻了，人在车厢里叮当的撞击。几秒钟以后，孩子和爱人挨着窗户，我帮助他们先爬了出来，我们出来后救援人员还没有赶到。我们是北京的，原来计划前往青岛过五一。我目前是锁骨骨折，其他良好，妻女目前在4楼救治，也无大碍。我觉得我受伤比较轻和软卧车厢有关系，周边的柔软物质减轻了二次撞击。整个翻滚过程中，我头脑是清醒的。事故后一看自己还有知觉，就喊女儿，然后赶快往外爬。我不后悔，天灾人祸，躲不过的。今后还是要坐火车。事发时大脑一片空白，什么都来不及想。 <br /><br />　　<img src="http://img3.bbs.163.com/shishi/st/studentadmin/e3f5095efd2cc9081eb12b49a319b615.jpg" border="0" alt="" /> <br /><br />　　张先生：我觉得我受伤比较轻，和软卧车厢有关系 <br /><br />　　<strong>T195次10号车厢软卧上铺 <br /><br />　　张太太：我焦急的喊着孩子的名字，听到孩子在哭</strong> <br /><br />　　我当时还在睡梦中，忽然感觉到车厢在左右激烈摆动。这时听到他大声喊女儿和我的名字，就在一瞬间，感觉车辆侧翻，我的面部狠狠撞击在旁边的护栏上。隔壁包厢内有女人尖叫的声音，整个车厢内一片混乱，四处漆黑一片。我焦急的喊着孩子的名字，听到孩子在哭。大约半分钟后，车厢终于稳定了。我发现自己正趴在窗户旁边，窗户玻璃已经碎了，我床下的女人已经被甩出包厢门外。我和他拉着小孩，从破碎的玻璃边爬了出去，这时才看到车厢已经成70度倾斜了。 <br /><br />　　<strong>T195次14号车厢硬卧下铺 <br /><br />　　苏小姐：我在第一时间用手机给朋友报险，他们说今天不是4月1日（愚人节）</strong> <br /><br />　　我当时在14卧铺车厢的下铺，当时邻铺的人正准备从淄博下车，忽然火车剧烈的摆动起来，接着发出可怕的异响。我当时有预感火车要出轨，于是赶快起身，这时车厢开始剧烈翻滚起来。好多人从床位上掉了下来，有的都压到我身上，暖水瓶的热水全溅出来了。我的头部在混乱中被撞。由于我当时在事故前给手机订了闹铃，黑暗中手机响了。我摸索着找到了手机，于是我在第一时间用手机给朋友报险。我告诉他们遇到车祸了，他们都认为我在开玩笑，说今天不是4月1日（愚人节），后来听到身边哭救的声音，他们才相信了。连忙在电话里安慰我并打电话报警。周围的村民很善良，也很淳朴。他们拿着东西敲碎玻璃，拯救没有爬出来的乘客。还有村民带着水和吃的来。 <br /><br />　　<img src="http://img1.bbs.163.com/shishi/st/studentadmin/7e0973d38c9c75bd3b68b699b0464932.jpg" border="0" alt="" /> <br /><br />　　青岛市长看望海尔员工王先生 <br /><br />　　<img src="http://img2.bbs.163.com/shishi/st/studentadmin/94b2a1533bb06b92114f3dcc3ebde20d.jpg" border="0" alt="" /> <br /><br />　　解放军148中心医院里，住了很多伤员 <br /><br />　　<img src="http://img3.bbs.163.com/shishi/st/studentadmin/620d863afae70c493e17aebef86b3fa6.jpg" border="0" alt="" /> <br /><br />　　周村中医院的收治名单 </p>
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/188551#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><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, 30 Apr 2008 20:35:44 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/188551</link>
        <guid>http://Book.group.javaeye.com/group/blog/188551</guid>
      </item>
          <item>
        <title>书摘--外交与爱国主义（标题自加） </title>
        <author>tuti</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://tuti.javaeye.com">tuti</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/188198" style="color:red;">http://Book.group.javaeye.com/group/blog/188198</a>&nbsp;
          发表时间: 2008年04月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今后中国外交一个较大的问题是，如何在保持必要的尊严的前提下，争取到一个较长的和平环境。由于自鸦片战争以来，西方列强对中国的百年欺凌给中国民众心理带来严重的扭曲，加之以这段历史为主的几十年的爱国主义思想的灌输，使得中国在处理与外部冲突时，外交上难以把握“合理的、必要的让步”和“摇尾乞怜、屈膝求和”之间的差别。这种因羞愤而严重扭曲的心理经常会影响外交策略的正确选择。<br /><br />     以国民政府抗战前的外交为例，在收回租界、关税等问题上，不知英、美、日在中国长远利益的差别，被对英美交涉成功而冲昏头脑，以没有国家实力（主要是军事实力）为前提的强硬姿态对日交涉，由于国家实力同所持有的强硬态度和预期目标存在极大差距，刺激、诱发了日本国内强硬派上台，不仅没有收回失地，反被占了东北，此时方知这是一场真正的实力较量，不是开会、游行、呼口号所能替代的，于是发现争取时间，增强国力才是当务之急，所以在“九一八事件”时采取“不抵抗政策”。但却难向充满爱国激情而失去理智的民众做出交代，被视作“卖国行为”，陷于内外被动的困境。笔者认为：当时情况下外交思路、策略得当的话，纵然日本侵略中国之心不死，中日战争不可避免，但争取20年的准备时间还是有可能的，20年或更长时间后，综合国力提高的情况下，中国抗战形势显然会有力得多。需要声明一点，笔者绝无为日本侵略中国的行径开脱之意，只是为了探讨当时在弱势对强势的情况下，弱势的中国是否在外交政策、策略上做到了最佳、最明智的选择？以便今天在同样是弱势对强势的中美格局中，提供一种经验和启示。历史的教训是：若把必要的妥协、暂时的让步在爱国主义情绪支配下等同于“屈膝投降”，将会招致国家利益更大的损失，并带来更大的屈辱。保持实力与强硬态度之间的合理平衡是外交艺术的核心问题，但在国家内部政治派别斗争激烈的情况下，一项合理的外交政策很难达成共识和付诸实施，并经常被歪曲。<br /><br />摘自P20《寻找敌人--战争文化与国际军事问题透视》倪乐雄
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/188198#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li><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, 29 Apr 2008 22:21:06 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/188198</link>
        <guid>http://Book.group.javaeye.com/group/blog/188198</guid>
      </item>
          <item>
        <title>Google面临一种新的安全挑战：关键字垃圾</title>
        <author>weidewei</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wishlife.javaeye.com">weidewei</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/187791" style="color:red;">http://Book.group.javaeye.com/group/blog/187791</a>&nbsp;
          发表时间: 2008年04月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">引用</div><div class="quote_div">来自<a href="http://news.csdn.net/n/20080428/115508.html" target="_blank">http://news.csdn.net/n/20080428/115508.html</a></div><br /><br />4月27日消息,据国外媒体报道称，关键字垃圾指的是与站点内容无关的关键字，目的仅仅是使网站从搜索引擎获得更高的流量。这些网页的目的或是为了骗取广告点击，或是为了传播病毒。通常情况下，这些站点包含有数百个拼写错误的单词，吸引那些在搜索引擎中快速输入关键字的用户。<br /><br />　　马特表示，关键字垃圾不一定是“能够看得见的”。文本和网页背景的颜色可以是一致的，使用户在浏览器上看不到任何内容，但能够被计算机和搜索引擎发现。但是，从技术上来说，这只是一种搜索引擎优化技术，而非“垃圾”。<br /><br />　　Google的PageRank使用一种基于信任和名誉的算法帮助遏止关键字垃圾。马克表示，大站点通过调整内部链接和URL名增加流量，小站点可以通过社区交叉链接获得更多的流量。<br /><br />　　由于博主数量众多，名为“评论垃圾”(comment spam)的第二种威胁更普遍一些。托管服务受到攻击的可能性要更低一些。
          <br/>
          <span style="color:red;">
            <a href="http://Book.group.javaeye.com/group/blog/187791#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><li><a href='/adverts/70' target='_blank'><span style="color:red;font-weight:bold;">第二届网络工程师侠客行大会5月24日杭州举行</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 28 Apr 2008 22:48:17 +0800</pubDate>
        <link>http://Book.group.javaeye.com/group/blog/187791</link>
        <guid>http://Book.group.javaeye.com/group/blog/187791</guid>
      </item>
          <item>
        <title>使用 Spring + iBATIS 框架详解</title>
        <author>天空不空</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liumingm.javaeye.com">天空不空</a>&nbsp;
                    链接：<a href="http://Book.group.javaeye.com/group/blog/186996" style="color:red;">http://Book.group.javaeye.com/group/blog/186996</a>&nbsp;
          发表时间: 2008年04月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; font-family: 宋体;">1: spring</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; font-family: 宋体;">框架介绍</span></strong></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><strong style="mso-bidi-font-weight: normal"></strong>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">框架是一个分层架构，由<span lang="EN-US">7</span>个定义好的模块组成。</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">模块构建在核心容器上，核心容器定义了创建、配置和管理</span><span lang="EN-US"><span style="font-family: Times New Roman;">bean</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">的方式。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-family: 宋体; mso-bidi-font-family: Arial;"><span style="font-size: small;">每个模块的功能如下：</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span style="font-family: 宋体; mso-bidi-font-family: Arial;">核心容器：核心容器提供</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">框架的基本功能。核心容器的主要组件是</span><span lang="EN-US"><span style="font-family: Times New Roman;">BeanFactory</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">，它是工厂模式的实现，</span><span lang="EN-US"><span style="font-family: Times New Roman;">BeanFactory</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">使用控制反转（</span><span lang="EN-US"><span style="font-family: Times New Roman;">IoC</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">）模式将应用程序的配置和依赖性规范与实际的应用代码分开。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">上下文：</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">上下文是一个配置文件，向</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">框架提供上下文信息，</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">上下文包括企业服务，例如，</span><span lang="EN-US"><span style="font-family: Times New Roman;">JNDI</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman';">、</span><span lang="EN-US"><span style="font-family: Times New Roman;">EJB</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">、电子邮件、国际化、校验和调度功能。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">Spring AOP</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">：通过配置管理特性，</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring AOP</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">模块直接将面向方面的编程功能集成到了</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">框架中，所以，可以很容易地使用</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">框架管理任何对象支持<span lang="EN-US">AOP</span>。</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring AOP</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">模块为基于</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">的应用程序中的对象提供了事务管理服务，通过使用</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring AOP</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">，不用依赖<span lang="EN-US">EJB</span>组件，就可以将声明性事务管理集成到应用程序中。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">Spring DAO</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman';">：</span><span lang="EN-US"><span style="font-family: Times New Roman;">JDBC DAO</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman';">（</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO Access Object</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman';">）</span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">抽象层提供了有意义的异常层次机构，可用该机构管理异常处理和不同数据库供应商抛出的错误消息。异常层次机构简化了错误处理，并且极大地降低了需要编写地异常代码数量</span><sup><span style="mso-bidi-font-family: Arial" lang="EN-US"><span style="font-family: Times New Roman;">]</span></span></sup><span style="font-family: 宋体; mso-bidi-font-family: Arial;">。<span lang="EN-US">Spring DAO</span>的面向<span lang="EN-US">JDBC</span>的异常遵从通用的</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">异常层次机构。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">Spring ORM</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman';">：</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">框架插入了若干个</span><span lang="EN-US"><span style="font-family: Times New Roman;">Object/Relation Mapping</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">框架，从而提供了<span lang="EN-US">ORM</span>的对象关系映射工具，其中包括</span><span lang="EN-US"><span style="font-family: Times New Roman;">JDO</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman';">、</span><span lang="EN-US"><span style="font-family: Times New Roman;">Hibernate</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">和</span><span lang="EN-US"><span style="font-family: Times New Roman;">iBatis SQL Map</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">。所有这些都遵从</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">的通用事务和</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">异常层次机构。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">Spring Web</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">模块：</span><span lang="EN-US"><span style="font-family: Times New Roman;">Web</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">上下文模块建立在应用程序上下文模块之上，为基于<span lang="EN-US">Web</span>的应用程序提供了上下文。所以，</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">框架支持与</span><span lang="EN-US"><span style="font-family: Times New Roman;">Struts</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">的集成。</span><span lang="EN-US"><span style="font-family: Times New Roman;">Web</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">模块还简化了处理多部分请求，以及将请求参数绑定到域对象的工作。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">Spring MVC</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">框架：</span><span lang="EN-US"><span style="font-family: Times New Roman;">MVC</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">框架是一个全功能的构建</span><span lang="EN-US"><span style="font-family: Times New Roman;">Web</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">应用程序的</span><span lang="EN-US"><span style="font-family: Times New Roman;">MVC</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">实现，通过策略变为可配置的，</span><span lang="EN-US"><span style="font-family: Times New Roman;">MVC</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">容纳了大量视图技术，其中包括</span><span lang="EN-US"><span style="font-family: Times New Roman;">JSP</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">等。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">框架的功能可以用在任何</span><span lang="EN-US"><span style="font-family: Times New Roman;">J2EE</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">服务器中，大多数功能也适用于不受管理的环境，</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">的核心要点是支持不绑定到特定</span><span lang="EN-US"><span style="font-family: Times New Roman;">J2EE</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">服务的可重用业务和数据访问对象。毫无疑问，这样的对象可以在不同</span><span lang="EN-US"><span style="font-family: Times New Roman;">J2EE</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">环境（</span><span lang="EN-US"><span style="font-family: Times New Roman;">Web</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">或</span><span lang="EN-US"><span style="font-family: Times New Roman;">EJB</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">）、独立应用程序、测试环境之间重用。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt">&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="mso-bookmark: _Toc169323285"><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; font-family: 宋体;">2: Ibatis介绍</span></strong></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="mso-bookmark: _Toc169323285"><strong></strong></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 297.0pt 428.4pt"><span style="font-size: small;"><span style="font-family: 宋体; mso-bidi-font-family: Arial;">纵观目前主流的</span><span lang="EN-US"><span style="font-family: Times New Roman;">ORM</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">，无论</span><span lang="EN-US"><span style="font-family: Times New Roman;">Hibernate </span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">还是</span><span lang="EN-US"><span style="font-family: Times New Roman;">Apache OJB</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">，都对数据库结构提供了较为完整的封装，提供了从</span><span lang="EN-US"><span style="font-family: Times New Roman;">POJO</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">到数据库表的全套映射机制。程序员往往只需定义好了</span><span lang="EN-US"><span style="font-family: Times New Roman;">POJO</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">到数据库表的映射关系，即可通过</span><span lang="EN-US"><span style="font-family: Times New Roman;">Hibernate</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">或者</span><span lang="EN-US"><span style="font-family: Times New Roman;">OJB</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">提供的方法完成持久层操作。程序员甚至不需要对</span><span lang="EN-US"><span style="font-family: Times New Roman;">SQL</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">的熟练掌握，</span><span lang="EN-US"><span style="font-family: Times New Roman;">Hibernate</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">/</span><span lang="EN-US"><span style="font-family: Times New Roman;">OJB</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">会根据制定的存储逻辑，自动生成对应的</span><span lang="EN-US"><span style="font-family: Times New Roman;">SQL</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">并调用</span><span lang="EN-US"><span style="font-family: Times New Roman;">JDBC</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"><span style="font-size: small;">接口加以执行。</span><span lang="EN-US"><br /><span style="mso-spacerun: yes"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size: small;">大多数情况下（特别是对新项目，新系统的开发而言），这样的机制无往不利，大有一统天下的势头。但是，在一些特定的环境下，这种一站式的解决方案却未必灵光。如：<span lang="EN-US"><span style="mso-spacerun: yes">&nbsp; </span></span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span style="font-family: 宋体; mso-bidi-font-family: 宋体;">1 </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">系统的部分或全部数据来自现有数据库，处于安全考虑，只对开发团队提供几条</span><span lang="EN-US"><span style="font-family: Times New Roman;">Select</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span lang="EN-US"><span style="font-family: Times New Roman;">SQL</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">（或存储过程）以获取所需数据，具体的表结构不予公开</span><sup><span style="mso-bidi-font-family: Arial" lang="EN-US"><span style="font-family: Times New Roman;">[6]</span></span></sup></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"><span style="font-size: small;">。</span><span lang="EN-US"><br /><span style="mso-spacerun: yes"><span style="font-size: small;">&nbsp;&nbsp; </span></span></span></span><span style="font-size: small;"><span style="font-family: 宋体; mso-bidi-font-family: 宋体;">2 </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">开发规范中要求，所有牵涉到业务逻辑部分的数据库操作，必须在数据库层由存储过程实现。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span style="font-family: 宋体; mso-bidi-font-family: 宋体;">3 </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">系统数据处理量巨大，性能要求极为苛刻，这往往意味着我们必须通过经过高度优化的</span><span lang="EN-US"><span style="font-family: Times New Roman;">SQL</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">语句（或存储过程）才能达到系统性能设计指标。&ldquo;半自动化&rdquo;的</span><span lang="EN-US"><span style="font-family: Times New Roman;">ibatis</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">，却刚好解决了这个问题。这里的&ldquo;半自动化&rdquo;，是相对</span><span lang="EN-US"><span style="font-family: Times New Roman;">Hibernate</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">等提供了全面的数据库封装机制的&ldquo;全自动化&rdquo;</span><span lang="EN-US"><span style="font-family: Times New Roman;">ORM</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">实现而言，&ldquo;全自动&rdquo;</span><span lang="EN-US"><span style="font-family: Times New Roman;">ORM</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">实现了</span><span lang="EN-US"><span style="font-family: Times New Roman;">POJO</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">和数据库表之间的映射，以及</span><span lang="EN-US"><span style="font-family: Times New Roman;">SQL</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">的自动生成和执行。而</span><span lang="EN-US"><span style="font-family: Times New Roman;">ibatis</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">的着力点，则在于</span><span lang="EN-US"><span style="font-family: Times New Roman;">POJO</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">与</span><span lang="EN-US"><span style="font-family: Times New Roman;">SQL</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">之间的映射关系。也就是说，</span><span lang="EN-US"><span style="font-family: Times New Roman;">ibatis</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">并不会为程序员在运行期自动生成<span lang="EN-US">SQL </span>执行。具体的</span><span lang="EN-US"><span style="font-family: Times New Roman;">SQL</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">需要程序员编写，然后通过映射配置文件，将<span lang="EN-US">SQL</span>所需的参数，以及返回的结果字段映射到指定</span><span lang="EN-US"><span style="font-family: Times New Roman;">POJO</span></span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"><span style="font-size: small;">。</span><span lang="EN-US"><br /><span style="mso-spacerun: yes"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size: small;">使用</span></span><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">ibatis</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">提供的</span><span lang="EN-US"><span style="font-family: Times New Roman;">ORM</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">机制，对业务逻辑实现人员而言，面对的是纯粹的<span lang="EN-US">Java</span>对象，这一层与通过</span><span lang="EN-US"><span style="font-family: Times New Roman;">Hibernate</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">实现</span><span lang="EN-US"><span style="font-family: Times New Roman;">ORM</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">而言基本一致，而对于具体的数据操作，</span><span lang="EN-US"><span style="font-family: Times New Roman;">Hibernate</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">会自动生成</span><span lang="EN-US"><span style="font-family: Times New Roman;">SQL</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">语句</span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">，而</span><span lang="EN-US"><span style="font-family: Times New Roman;">ibatis</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">则要求开发者编写具体的</span><span lang="EN-US"><span style="font-family: Times New Roman;">SQL</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">语句。相对</span><span lang="EN-US"><span style="font-family: Times New Roman;">Hibernate</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">等&ldquo;全自动&rdquo;</span><span lang="EN-US"><span style="font-family: Times New Roman;">ORM</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">机制而言，</span><span lang="EN-US"><span style="font-family: Times New Roman;">ibatis</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">以</span><span lang="EN-US"><span style="font-family: Times New Roman;">SQL</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">开发的工作量和数据库移植性上的让步，为系统设计提供了更大的自由空间</span><sup><span style="mso-bidi-font-family: Arial" lang="EN-US"><span style="font-family: Times New Roman;">[8]</span></span></sup><span style="font-family: 宋体; mso-bidi-font-family: Arial;">。作为&ldquo;全自动&rdquo;</span><span lang="EN-US"><span style="font-family: Times New Roman;">ORM</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">实现的一种有益补充，</span><span lang="EN-US"><span style="font-family: Times New Roman;">ibatis</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial;"> </span><span style="font-family: 宋体; mso-bidi-font-family: Arial;">的出现显得别具意义。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt">&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; font-family: 宋体;">3 DAO</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; font-family: 宋体;">数据存取</span></strong></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><strong style="mso-bidi-font-weight: normal"></strong>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0" align="left"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">J2EE</span></span><span style="font-family: 宋体; mso-bidi-font-family: 宋体;">开发人员使用数据访问对象<span lang="EN-US">(</span></span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="font-family: 宋体; mso-bidi-font-family: 宋体;">)</span><span style="font-family: 宋体; mso-bidi-font-family: 宋体;">设计模式把底层的数据访问逻辑和高层的商务逻辑分开<span lang="EN-US">.</span>实现</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="font-family: 宋体; mso-bidi-font-family: 宋体;">模式能够更加专注于编写数据访问代码<span lang="EN-US">.</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="font-family: 宋体;">模式是标准的</span><span lang="EN-US"><span style="font-family: Times New Roman;">J2EE</span></span><span style="font-family: 宋体;">设计模式之一<span lang="EN-US">.</span>开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开<span lang="EN-US">.</span>一个典型的</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span></span><span style="font-family: 宋体;"><span style="font-size: small;">实现有下列几个组件</span><span lang="EN-US"><span style="font-size: small;">:<br /><span style="color: #ff0000;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span></span></span></span></span><span style="font-size: small;"><span style="color: #0000ff; font-family: 宋体; mso-bidi-font-family: Arial;">1<span style="mso-spacerun: yes">&nbsp; </span></span><span style="color: #0000ff; font-family: 宋体;">一个</span><span style="color: #0000ff;"><span style="font-family: Times New Roman;">DAO</span></span></span><span style="color: #0000ff; font-family: 宋体;"><span style="font-size: small;">工厂类</span><span lang="EN-US"><span style="font-size: small;">;<br /><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span></span></span></span><span style="font-size: small;"><span style="color: #0000ff; font-family: 宋体; mso-bidi-font-family: Arial;">2<span style="mso-spacerun: yes">&nbsp; </span></span><span style="color: #0000ff; font-family: 宋体;">一个</span><span style="color: #0000ff;"><span style="font-family: Times New Roman;">DAO</span></span></span><span style="color: #0000ff; font-family: 宋体;"><span style="font-size: small;">接口</span><span lang="EN-US"><span style="font-size: small;">;<br /><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span></span></span></span><span style="font-size: small;"><span style="color: #0000ff; font-family: 宋体; mso-bidi-font-family: Arial;">3 </span><span style="color: #0000ff; font-family: 宋体;">&nbsp;</span><span style="color: #0000ff; font-family: 宋体;">一个实现</span><span style="color: #0000ff;"><span style="font-family: Times New Roman;">DAO</span></span></span><span style="color: #0000ff; font-family: 宋体;"><span style="font-size: small;">接口的具体类</span><span lang="EN-US"><span style="font-size: small;">;<br /><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span></span></span></span><span style="font-size: small;"><span style="color: #0000ff; font-family: 宋体; mso-bidi-font-family: Arial;">4<span style="mso-spacerun: yes">&nbsp; </span></span><span style="color: #0000ff; font-family: 宋体;">数据传递对象<span lang="EN-US">(</span>有些时候叫做值对象<span lang="EN-US">).</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; tab-stops: 428.4pt"><span style="font-size: small;"><span style="font-family: 宋体;">在源程序的一个包中放置的是已经封装好的底层数据库连接组件，也就是所谓的</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO(Data Access Object)</span></span><span style="font-family: 宋体;">组件</span><sup><span lang="EN-US"><span style="font-family: Times New Roman;">[11]</span></span></sup><span style="font-family: 宋体;">。</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="font-family: 宋体;">组件的主要功能是提供数据库存取服务。通过这一组封装好的组件，可以完成以下的功能：从系统的配置文件中读取系统的配置参数，该配置文件中存放的是连接数据库的配置。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; font-family: 宋体;">&nbsp;</span></strong></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; font-family: 宋体;">4 </span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; font-family: 宋体;">配置<span lang="EN-US">Sql-map-config.xml</span></span></strong></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&nbsp;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">Sql-map-config</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">文件是负责前台业务和后台数据库交互的一个配置文件</span><span lang="EN-US"><span style="font-family: Times New Roman;">:</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&lt;?xml version="1.0" encoding="GBK"?&gt;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&lt;!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>"http://www.ibatis.com/dtd/sql-map-config-2.dtd"&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&lt;sqlMapConfig&gt;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp; </span>&lt;settings</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>cacheModelsEnabled="true"</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>enhancementEnabled="true"</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>lazyLoadingEnabled="true"</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>maxRequests="256"</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>maxSessions="100"</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>maxTransactions="100"</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>useStatementNamespaces="true"</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp; </span>/&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">/*</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">中间为由生成</span><span lang="EN-US"><span style="font-family: Times New Roman;">jar</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">包工具生成的各个表的</span><span lang="EN-US"><span style="font-family: Times New Roman;">xml</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">文件</span><span lang="EN-US"><span style="font-family: Times New Roman;">,</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">用到的数据库表</span><span lang="EN-US"><span style="font-family: Times New Roman;">,</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">必须在该文件中配置</span><span lang="EN-US"><span style="font-family: Times New Roman;">,</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">否则</span><span lang="EN-US"><span style="font-family: Times New Roman;">,</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">将不起作用</span><span lang="EN-US"><span style="font-family: Times New Roman;">;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #0000ff;"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;</span>&lt;sqlMap resource="com/zzxy/mvc/dao/atom/maps/CF_AJXX.xml"/&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&hellip;&hellip;&hellip;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&lt;/sqlMapConfig&gt;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="font-size: small;"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">其中</span><span lang="EN-US"><span style="font-family: Times New Roman;">,</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">我们所写的各个固定的配置文件也必须写在该配置文件中。</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; font-family: 宋体;">5 </span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; font-family: 宋体;">配置<span lang="EN-US">applicationContext.xml</span></span></strong></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&nbsp;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">applicationContext.xml</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">文件是基本的配置文件</span><span lang="EN-US"><span style="font-family: Times New Roman;">,</span></span></span><span style="font-size: 9.5pt; color: #404040; font-family: Verdana;"> </span><span style="font-size: 9.5pt; color: #404040; font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana;">放置在你所创建工程的</span><span style="font-size: 9.5pt; color: #404040; font-family: Verdana;">WEB-INF</span><span style="font-size: 9.5pt; color: #404040; font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana;">中</span><span style="font-size: 9.5pt; color: #404040; font-family: Verdana;">,</span><span style="font-size: small;"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">所用的技术为</span><span lang="EN-US"><span style="font-family: Times New Roman;">Spring+Ibatis,</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">也是该框架的基础</span><span lang="EN-US"><span style="font-family: Times New Roman;">,</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">所有的业务开发</span><span lang="EN-US"><span style="font-family: Times New Roman;">,</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">都要建立在该配置文件上面</span><span lang="EN-US"><span style="font-family: Times New Roman;">;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体;"><span style="font-size: small;">&nbsp;</span></span></strong></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体;">5.1 </span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体;">配置方法</span></strong></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&nbsp;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="font-size: small;"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">该配置文件分为四个部分</span><span lang="EN-US"><span style="font-family: Times New Roman;">:</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US"><span style="font-family: Times New Roman;">(1):</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">文档开头定义</span></strong></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LAYOUT-GRID-MODE: char; mso-layout-grid-align: none"><span style="mso-bidi-font-size: 10.5pt" lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="mso-bidi-font-size: 10.5pt" lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;">&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&lt;beans&gt;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US"><span style="font-family: Times New Roman;">(2):</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">数据源定义和</span><span lang="EN-US"><span style="font-family: Times New Roman;">SqlMapClient</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">为</span><span lang="EN-US"><span style="font-family: Times New Roman;">IBATIS</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">数据库层设定</span></strong></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&nbsp;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp; </span>&lt;bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean"&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10.5pt; mso-char-indent-count: 1.0"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&lt;property name="jndiName" value="java:OracleDS"/&gt;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/bean&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LAYOUT-GRID-MODE: char; mso-layout-grid-align: none"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">﻿ &lt;bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/&gt;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;</span><span style="color: #ff0000;"><span style="mso-spacerun: yes">&nbsp;</span>&lt;!-- SqlMapClient setup for iBATIS Database Layer --&gt;</span></span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #ff0000;"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp; </span>&lt;bean id="SqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #ff0000;"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;property name="dataSource"&gt;&lt;ref local="DataSource"/&gt;&lt;/property&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #ff0000;"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;property name="configLocation"&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #ff0000;"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;value&gt;WEB-INF/sql-map-config.xml&lt;/value&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #ff0000;"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;/property&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #ff0000;"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/bean&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="font-size: small;"><span style="color: #0000ff; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">注意这部分代码</span><span style="color: #0000ff;"><span style="font-family: Times New Roman;">,</span></span></span><span style="font-size: 9.5pt; color: #0000ff; font-family: Verdana;"> </span><span style="font-size: 9.5pt; color: #0000ff; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt;">定义</span><span style="font-size: 9.5pt; color: #0000ff; font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">sqlMapClient</span><span style="font-size: 9.5pt; color: #0000ff; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt;">时，</span><span style="font-size: 9.5pt; color: #0000ff; font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">configLocation</span><span style="font-size: 9.5pt; color: #0000ff; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt;">的</span><span style="font-size: 9.5pt; color: #0000ff; font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">value</span><span style="font-size: 9.5pt; color: #0000ff; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt;">需要定义为</span><span style="font-size: small;"><span style="color: #0000ff;"><span style="font-family: Times New Roman;">&lt;value&gt;WEB-INF/sql-map-config.xml&lt;/value&gt;,</span></span><span style="color: #0000ff; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">否则会引起很多错误</span><span style="color: #0000ff;"><span style="font-family: Times New Roman;">;</span></span></span><span style="font-size: 9.5pt; color: #0000ff; font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> </span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&nbsp;</span></span></strong></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US"><span style="font-family: Times New Roman;">(3): DAO</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">的定义和</span><span lang="EN-US"><span style="font-family: Times New Roman;">Ibatis </span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">的实现的</span><span lang="EN-US"><span style="font-family: Times New Roman;">class</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">文件路径</span><span lang="EN-US"><span style="font-family: Times New Roman;">:</span></span></strong></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;</span>&lt;bean id="publicDao" class="com.zzxy.mvc.mis.dao.custom.PublicDaoImp"&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;property name="dataSource"&gt;&lt;ref local="DataSource"/&gt;&lt;/property&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;property name="sqlMapClient" ref="SqlMapClient"/&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/bean&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&lt;bean id="cf_ajxx_dao" class="com.zzxy.mvc.dao.atom.impl.CF_AJXX_DAOImp"&gt;</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;property name="dataSource"&gt;&lt;ref local="DataSource"/&gt;&lt;/property&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;property name="sqlMapClient" ref="SqlMapClient"/&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/bean&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&hellip;.</span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US"><span style="font-family: Times New Roman;">(4):</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">定义数据层和数据库层的接口</span></strong></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="font-size: small;"><strong style="mso-bidi-font-weight: normal"><span style="color: #0000ff;"><span style="font-family: Times New Roman;">DC</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="color: #0000ff; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">为所有的</span><span style="color: #0000ff;"><span style="font-family: Times New Roman;">dao</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="color: #0000ff; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">的集合</span></strong></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp; </span>&lt;bean id="DC" class="com.zzxy.mvc.mis.dao.DaoCollection"&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;property name="publicDao" ref="publicDao"/&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name="cf_ajxx_dao" ref="cf_ajxx_dao"/&gt;</span></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n