<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>JavaEye论坛最新讨论</title>
    <description>JavaEye论坛最新讨论 - Java编程，Ruby编程，微软.net，AJAX，敏捷软件开发，综合软件技术</description>
    <link>http://www.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>现在用grails来做项目是不是太激进</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://vansention.javaeye.com">范三山</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/250349" style="color:red;">http://www.javaeye.com/topic/250349</a>&nbsp;
          发表时间: 2008年10月08日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          现在要做一个互联网的项目，不是很大。人员大概就是两个java程序员，美工另算。我一直以为，用java来做中小型的互联网项目不是一个明智的选择。这个项目如果我们按照以往的方法不外乎是struts2+spring+hibernate，我觉得效率不是很高。<br />&nbsp;&nbsp;&nbsp; 我前一段时间自己弄过一下grails，写了一个blog程序，感觉非常棒。我想这个项目用grails十分的不错，因为时间比较紧，用grails来做会非常的快。但是我现在有一些担心<br />&nbsp;&nbsp;&nbsp; 1.grails的性能问题，不过我不太相信瓶颈会出现在程序端，怎么说也是数据库先有瓶颈。<br />&nbsp;&nbsp;&nbsp; 2.将来的维护问题，如果我们不在了维护的人还得学grails。<br />&nbsp;&nbsp;&nbsp; 3.ide不怎么好用，几乎是完全没有作用。我写grails程序一般用netbeans，不知道那位老兄会不会不习惯。IntelliJ IDEA是不会考虑的，实在没有兴趣去搞注册码。<br />&nbsp;&nbsp;&nbsp; 虽然很看好grails，但是还是会有些担心，不知道大家怎么看的。
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/250349" style="color:red;">已有 <strong>42</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 08 Oct 2008 15:47:12 +0800</pubDate>
        <link>http://www.javaeye.com/topic/250349</link>
        <guid>http://www.javaeye.com/topic/250349</guid>
      </item>
          <item>
        <title>MySQL数据库操作实战</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://touya.javaeye.com">touya</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251307" style="color:red;">http://www.javaeye.com/topic/251307</a>&nbsp;
          发表时间: 2008年10月10日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          昨天项目发布，要做数据移行，要实现的功能很变态，时间很紧迫，基本上是使出了全身解数，才能有快又准地完成工作，期间发现很多小技巧串联起来使用，效果的确非常好。<br /><br />武器：<br />1 mysqldump+mysql命令=>数据的导入导出，备份恢复<br /><br />2 perl命令行=>很多时候，你有一个想法，它就能只用一句话，帮你实现它，省得编写很多代码的麻烦<br /><br />3 shell命令=>组合拳，单独的命令谁都会，组合起来使用，需要一些经验的积累<br /><br />4 强大的编辑器支持UltraEdit/EmEdit等=>UltraEdit最专业，但不支持字符集转换；EmEdit支持字符集转换，且最新版有很多插件可供选择，基本够常见的操作了，对于WEB开发人员来说，常需要在GB2312、utf8或者其他国家语言euc-jp、shift-jis等等编码中转来转去，EmEdit的确是首选，特别赞的还有EmEdit的录制键盘动作并播放的功能<br /><br />常见组合：<br />1 数据移行时：<br />mysqldump --opt -t -h locahost -P 23236 -p mydb table -w "id>27000" > table.sql<br />>输入密码<br />OK , mydb中的表table中id大于27000的所有数据列的INSERT语句就保存到table.sql中了。-h、-P、-p就不多说了，--opt 是mysqldump的最常用组合选项，可以认为是加速语句；-t 则很有用，表示--no-create-info，就是你不需要建表语句，只需要数据（INSERT语句）；-w就是where条件，也非常有用，让你有选择的导出数据。其他常见选项有：-d ： 只需要建表语句，不需要insert语句；-c ：给每个insert语句加上列名（field），默认时，insert语句是“insert into `table` values (1),(2),(3);”，而加上-c后，就变成了“insert into table(id) values (1),(2),(3);”。有什么用？一会儿自会明白。<br /><br />如果表中数据非常多，导出insert语句就非常长（默认情况下，一个表的所有数据都在一个insert语句中，不换行），要查看这个文件常常引起死机，无论是linux下用vi，less查看，还是windows用EmEdit等编辑器，因为他们都是以行为单位load数据的，一行的数据过大就会内存占用过大，怎么办？<br /><br />你发现，只需要在EmEdit里查找“),(”这个字符串，将它替换为"),\n("，也就是加个换行，就行了，于是就这么做，结果发现——当数据量达到上万时，EmEdit就像数羊一样一个一个替换，等它换完，你都睡了一觉了！！<br /><br />怎么办呢？你当然知道写个脚本就行了，很容易，但是花的时间多，还需要测试，有简单办法吗？恩，那就轮到perl单命令行上场了：<br />perl -i.bak -pe 's/\),\(/\),\n\(/g' table.sql<br />OK，替换结束，且生成了一个备份文件table.sql.bak，如果你发现写错了，效果不对，还有救：）<br /><br />当然了，如果你会用sed、awk等强大的编辑工具，这个也是小case，这里就不多说了。<br /><br />2 数据导入<br />导出的数据经过处理，就要导入目标数据库，现在有一个表，字段非常多，其中主键为id，导入另一个数据库的相同表里，但是id不想直接插入，而是只要数据，id最好是自动生成的，跟在目标数据表最末一条数据之后即可，以免主键冲突。怎么搞呢？<br />这时候就能用上刚才说到的-c选项了，加了-c，导出的数据有field列，只需要把其中的id列都替换为空即可：）<br />这个替换过程，用EmEdit或上面说到的perl命令行都可以，只是速度的区别了。<br /><br />3 接上面的问题，老数据导入了新的表，生成了一串新的连续id，但和老数据完全不一样了，现在有其他几张表中使用了老数据的id作为外键，要把它们统一改为新的id。例如：<br />老数据中table.id=10010，有一个表table2.table=10010,是外键关系，要把这个table2.table改为新数据表中自动产生的那个id，就比如说是6041.现在手头上的数据只有老id列表，且知道插入新表中的id是自增的，每次加1，从6041开始，怎么快速修改 table2，table3中的相应外键呢？<br />一个文件：<br />10010<br />10201<br />11301<br />11499<br />……<br /><br />要替换成：<br />update table2 set table=6041 where id=10010;<br />update table2 set table=6042 where id=10201;<br />update table2 set table=6043 where id=11301;<br />update table2 set table=6044 where id=11499;<br />……<br /><br />我们可以这么组合手头的工具：<br />perl -i.bak -pe 'BEGIN {$x=6041} s/^(\d+)/update table2 set table=$x where id=$1;/ ; $x++' file.txt<br />OK，搞定<br />这个例子的特色其实就是perl命令行中的BEGIN的用法，有begin，当然有end，具体就自己查查文档吧：）<br /><br />4 还有EmEdit中的录制键盘动作并播放也很常用，毕竟写正则比较费脑子，用工具虽然处理速度慢一些，但是思考速度要快很多。今天碰到一件事，需要把服务器上某个目录中的bmp图片都转为jpg格式，也是要使用组合拳的，其中就用到了EmEdit的录制播放功能。<br />已知某目录下有N多bmp图片，通过convert命令可以转格式（安装Image::Magick模块即可）<br />怎么搞？<br />find ./ -name "*.bmp" > bmp.txt<br />先拿到文件列表再说。<br /><br />在EmEdit中打开该列表，一行行文件名。<br />你发现你想做的就是：<br />./dir1/dir2/file1.bmp<br />./dir1/dir2/file2.bmp<br />./dir1/dir2/file3.bmp<br />转变为：<br />convert ./dir1/dir2/file1.bmp ./dir1/dir2/file1.jpg<br />convert ./dir1/dir2/file2.bmp ./dir1/dir2/file2.jpg<br />convert ./dir1/dir2/file3.bmp ./dir1/dir2/file3.jpg<br /><br />这是一个非常有规律的动作，在行首，按shift+End（选择），ctrl+c（复制），End（到行尾），空格，ctrl+v（粘贴），backspace三次，输入jpg，HOME到行首，输入convert空格，下一行，HOME到行首<br />只要把这个操作序列记录下来，对每行都是一样操作，这时就可以使用EmEdit的录制+播放功能了，录制完成后，按F4快捷键，一爽到底~~yeah~~<br /><br />运行之后要删除原图：<br />在shell下：<br />find ./ -name "*.bmp" | xargs -n1 rm -f<br />(找到本目录下的bmp图片文件名列表，一个一个传给rm -f，删之，慎用)<br /><br />5 数据库恢复（从bin-log中恢复数据库也是一个非常重要的技巧），出现误操作或DB服务器不幸意外丢失数据时，常常要查bin-log来试图恢复数据，下次接着聊吧，累了……<br /><br />呵呵，乱写写，好像不只是数据库操作了，不过挺实在，欢迎各位拍砖吧
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251307" style="color:red;">已有 <strong>2</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</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, 10 Oct 2008 15:03:42 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251307</link>
        <guid>http://www.javaeye.com/topic/251307</guid>
      </item>
          <item>
        <title>Show一下ROR结合Ext的成果</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://taito.javaeye.com">taito</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/250835" style="color:red;">http://www.javaeye.com/topic/250835</a>&nbsp;
          发表时间: 2008年10月09日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          用到<strong>ext</strong>的 data, tree, grid,form, panel, layout等<br /><br />主要是生成ext 的 <strong>json</strong>格式数据，及<strong>ror </strong><strong>rest</strong>方法有些麻烦，其它的到还好，多看API文档就行了。<br /><br />其中rails后台部分，用到了betternestedset插件。<br /><br /><br />*:<br /><br /><span style="color: brown">因为还没有找到一家稳定又方便的ror服务器提供商，所以现在在网上看不到实际的应用效果。<br /><br />目前为止只能在本机浏览，有提供ror支持的服务器商可以推荐一下。</span>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/250835" style="color:red;">已有 <strong>2</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 09 Oct 2008 16:46:46 +0800</pubDate>
        <link>http://www.javaeye.com/topic/250835</link>
        <guid>http://www.javaeye.com/topic/250835</guid>
      </item>
          <item>
        <title>构建全栈式Flex、BlazeDS和Spring集成解决方案</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jinyongzhang.javaeye.com">jinyongzhang</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/250485" style="color:red;">http://www.javaeye.com/topic/250485</a>&nbsp;
          发表时间: 2008年10月08日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="color: #000000;"><span style="font-size: 14pt; font-family: 宋体;">随着富</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Internet</span>
<span style="font-size: 14pt; font-family: 宋体;">应用（</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">RIA</span>
<span style="font-size: 14pt; font-family: 宋体;">）技术的不断成熟，将类似于</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Adobe Flex</span>
<span style="font-size: 14pt; font-family: 宋体;">这样的</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">RIA</span>
<span style="font-size: 14pt; font-family: 宋体;">应用与健壮的服务器端技术进行集成就变得越来越重要了。</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Java</span>
<span style="font-size: 14pt; font-family: 宋体;">开发者最喜欢的服务器端框架之一</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Spring</span>
<span style="font-size: 14pt; font-family: 宋体;">将在这个过程中扮演着重要的角色。</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"></span>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="color: #000000;"><span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Spring</span>
<span style="font-size: 14pt; font-family: 宋体;">的控制反转（</span>
</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://en.wikipedia.org/wiki/Inversion_of_Control" target="_blank"><span style="text-decoration: underline;"><span style="color: #0000ff;">Inversion of Control</span>
</span>
</a>
</span>
<span style="color: #000000;"><span style="font-size: 14pt; font-family: 宋体;">，</span>
<span style="font-size: 14pt; font-family: 'Arial','sans-serif';"> </span>
<span style="font-size: 14pt; font-family: 宋体;">即</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">IoC</span>
<span style="font-size: 14pt; font-family: 宋体;">）的主要思想就是让容器实例化组件（并且注入其依赖）。但是在默认情况下，由</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Flex</span>
<span style="font-size: 14pt; font-family: 宋体;">客户端远程访问的组件是在服务器端由</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Flex</span>
<span style="font-size: 14pt; font-family: 宋体;">目的文件实例化的。所以</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Flex</span>
<span style="font-size: 14pt; font-family: 宋体;">与</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Spring</span>
<span style="font-size: 14pt; font-family: 宋体;">集成的关键在于配置</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Flex</span>
<span style="font-size: 14pt; font-family: 宋体;">目的文件以使其能够让</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Spring</span>
<span style="font-size: 14pt; font-family: 宋体;">容器来管理实例化的</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Spring beans</span>
<span style="font-size: 14pt; font-family: 宋体;">。</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Flex</span>
<span style="font-size: 14pt; font-family: 宋体;">数据服务支持工厂的概念以便可以实例化这类客户化组件。工厂的作用仅仅在于向</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Flex</span>
<span style="font-size: 14pt; font-family: 宋体;">目的文件提供准备好的组件实例，而不是让</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"> Flex</span>
<span style="font-size: 14pt; font-family: 宋体;">目的文件自己去实例化这些组件。</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"></span>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://sebastien-arbogast.com/2008/04/10/flex-spring-and-blazeds-the-full-stack/" target="_blank"><span style="text-decoration: underline;"><span style="color: #800080;">S&eacute;bastien Arbogast</span>
</span>
</a>
</span>
<span style="color: #000000;"><span style="font-size: 14pt; font-family: 宋体;">在不遗余力地发表一系列博文，以阐述如何构建全栈式</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Flex</span>
<span style="font-size: 14pt; font-family: 宋体;">、</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">BlazeDS</span>
<span style="font-size: 14pt; font-family: 宋体;">和</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Spring</span>
<span style="font-size: 14pt; font-family: 宋体;">集成解决方案。</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Arbogast</span>
<span style="font-size: 14pt; font-family: 宋体;">的这个全栈式集成，从下到上包括如下内容：</span>
</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://www.jboss.org/"><span style="text-decoration: underline;"><span style="color: #0000ff;">JBoss</span>
</span>
</a>
</span>
<span style="font-size: 14pt; font-family: 宋体;"><span style="color: #000000;">作为应用服务器、</span>
</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://www.mysql.org/"><span style="text-decoration: underline;"><span style="color: #0000ff;">MySQL</span>
</span>
</a>
</span>
<span style="font-size: 14pt; font-family: 宋体;"><span style="color: #000000;">作为数据存储、</span>
</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://www.hibernate.org/" target="_blank"><span style="text-decoration: underline;"><span style="color: #0000ff;">Hibernate</span>
</span>
</a>
</span>
<span style="font-size: 14pt; font-family: 宋体;"><span style="color: #000000;">完成数据访问、</span>
</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://springframework.org/"><span style="text-decoration: underline;"><span style="color: #0000ff;">Spring</span>
</span>
</a>
</span>
<span style="font-size: 14pt; font-family: 宋体;"><span style="color: #000000;">用来构建业务层、</span>
</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS" target="_blank"><span style="color: #810081;"><span style="text-decoration: underline;">BlazeDS</span>
</span>
</a>
</span>
<span style="color: #000000;"><span style="font-size: 14pt; font-family: 宋体;">作为远程服务、</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Flex</span>
<span style="font-size: 14pt; font-family: 宋体;">用来构建富客户端。该系统使用</span>
</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://maven.apache.org/" target="_blank"><span style="text-decoration: underline;"><span style="color: #0000ff;">Maven</span>
</span>
</a>
</span>
<span style="font-size: 14pt; font-family: 宋体;"><span style="color: #000000;">及</span>
</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://code.google.com/p/flex-mojos/" title="flex-compiler-mojo插件" target="_blank"><span style="text-decoration: underline;"><span style="color: #0000ff;">flex-compiler-mojo<span lang="EN-US" style="font-family: 宋体;"><span lang="EN-US">插件</span>
</span>
</span>
</span>
</a>
</span>
<span style="font-size: 14pt; font-family: 宋体;"><span style="color: #000000;">进行构建。</span>
</span>
<span class="MsoFootnoteReference"><span lang="EN-US" style="font-size: 14pt; color: red; font-family: 'Arial','sans-serif';"><span><span class="MsoFootnoteReference"><span lang="EN-US" style="font-size: 14pt; color: red; font-family: 'Arial','sans-serif';">[1]</span>
</span>
</span>
</span>
</span>
</p>
<p class="MsoNormal" align="center" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: 14pt; color: black; font-family: 宋体;"><strong><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/ematrix001/EntryImages/20081008/fullstack633590931760833750.PNG" height="382" align="center" alt="" width="390" />
</strong>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: 14pt; color: black; font-family: 宋体;"><strong></strong>
</span>
&nbsp;</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: 14pt; color: black; font-family: 宋体;"><strong>我翻译的中文文档下载地址：</strong>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: 14pt; color: #333333; font-family: 宋体;"><span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><span><span style="font-size: 14pt; color: #333333; font-family: 宋体;"><span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://download.csdn.net/source/672504"><span style="text-decoration: underline;"><span style="color: #800080;">http://download.csdn.net/source/672504</span>
</span>
</a>
</span>
</span>
</span>
</span>
</span>
</span>
</span>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #000000;"></span>
&nbsp;</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #000000;"><span style="font-size: 14pt; font-family: 宋体;">&nbsp;本文档就是</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';">Arbogast</span>
<span style="font-size: 14pt; font-family: 宋体;">发布在</span>
</span>
<span lang="EN-US" style="font-size: 14pt; color: #333333; font-family: 'Arial','sans-serif';"><a href="http://www.adobe.com/devnet"><span style="text-decoration: underline;"><span style="color: #0000ff;">Adobe Developer Connection</span>
</span>
</a>
</span>
<span style="font-size: 14pt; color: #333333; font-family: 宋体;">上一系列文章的中文翻译版本。我使用了先直译后意译的方法，尽量做到语言流畅、通俗而易懂；修补了英文原文的</span>
<span lang="EN-US" style="font-size: 14pt; color: #333333; font-family: 'Arial','sans-serif';">3</span>
<span style="font-size: 14pt; color: #333333; font-family: 宋体;">处疏漏</span>
<span style="font-size: 14pt; color: #333333; font-family: 'Arial','sans-serif';"> </span>
<span style="font-size: 14pt; color: #333333; font-family: 宋体;">，添加了</span>
<span lang="EN-US" style="font-size: 14pt; color: #333333; font-family: 'Arial','sans-serif';">2</span>
<span style="font-size: 14pt; color: #333333; font-family: 宋体;">张运行效果图，希望能帮助你理解。当然，翻译不恰之处，敬请指正。</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #000000;"><span style="font-size: 14pt; font-family: 宋体;">&nbsp;以下是英文原文链接：</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"></span>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: 14pt; font-family: 宋体;"><span style="color: #000000;">第一部分：</span>
</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://www.adobe.com/devnet/flex/articles/fullstack_pt1.html"><span style="text-decoration: underline;"><span style="color: #0000ff;">http://www.adobe.com/devnet/flex/articles/fullstack_pt1.html</span>
</span>
</a>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: 14pt; font-family: 宋体;"><span style="color: #000000;">第二部分：</span>
</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://www.adobe.com/devnet/flex/articles/fullstack_pt2.html"><span style="text-decoration: underline;"><span style="color: #0000ff;">http://www.adobe.com/devnet/flex/articles/fullstack_pt2.html</span>
</span>
</a>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: 14pt; font-family: 宋体;"><span style="color: #000000;">第三部分：</span>
</span>
<span lang="EN-US" style="font-size: 14pt; font-family: 'Arial','sans-serif';"><a href="http://www.adobe.com/devnet/flex/articles/fullstack_pt3.html"><span style="color: #800080;"><span style="text-decoration: underline;">http://www.adobe.com/devnet/flex/articles/fullstack_pt3.html</span>
</span>
</a>
</span>
</p>
<p>
<br />
<span style="color: #800080;"><span style="text-decoration: underline;">
<hr size="1" />
</span>
</span>

<span class="MsoFootnoteReference"><span lang="EN-US" style="font-size: 14pt; color: red;"><span><span class="MsoFootnoteReference"><span lang="EN-US" style="font-size: 14pt; color: red; font-family: 'Calibri','sans-serif';">[1]</span>
</span>
</span>
</span>
</span>
<span style="font-family: Calibri;"><span lang="EN-US" style="font-size: 14pt; color: red;"> </span>
<span lang="EN-US" style="color: red;"><span>&nbsp;</span>
</span>
</span>
<span style="color: red; font-family: 宋体;">以上文字摘引自</span>
<span lang="EN-US" style="color: red;"><a href="http://www.infoq.com/cn/news/2008/05/integrate-flex-spring"><span style="color: red;"><span style="text-decoration: underline;"><span style="font-family: Calibri;">http://www.infoq.com/cn/news/2008/05/integrate-flex-spring</span>
</span>
</span>
</a>
</span>
</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/250485" style="color:red;">已有 <strong>3</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</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, 08 Oct 2008 20:48:19 +0800</pubDate>
        <link>http://www.javaeye.com/topic/250485</link>
        <guid>http://www.javaeye.com/topic/250485</guid>
      </item>
          <item>
        <title>自己开发的Adobe Flex/Air网络应用 上线</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jiorry.javaeye.com">jiorry</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/250749" style="color:red;">http://www.javaeye.com/topic/250749</a>&nbsp;
          发表时间: 2008年10月09日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          对Adobe Flex比较有兴趣， 闲暇时间打算写一个网络记事本。 但是功能单一，所以之后又加入了“闹钟”，“RSS新闻”和“相册”功能。&nbsp; 十一长假，进行了收尾，今天把它放到了网上。 <br /><br />网址是： <a href="http://www.box200.cn" target="_blank">http://www.box200.cn</a> <br /><br />我有一些琐碎的资料，现在可以放到box200里了。查阅的时候比较方便。 <br />闹钟功能也能每天提醒我定时吃苹果。 <br />再顺便看看最新的新闻。 <br />网盘，太耗服务器资源，所以只做了相册功能。 <br /><br />其他功能，想到了，再加。 <br /><br />有兴趣的朋友，大家讨论，一起建设。 <br /><br />希望大家能对BOX200未来出路进行讨论。 <br /><br />一个朋友的建议，准备研究一下：相册功能，不知Google是否提供了Picasa的API，如果提供了就可以结合它来做，也省服务器空间了 <br /><br /><img src="http://jiorry.javaeye.com/upload/picture/pic/23119/d233458f-6cb0-3f21-b211-1c18cffe6dd8.png" /><img src="http://jiorry.javaeye.com/upload/picture/pic/23121/b58b9050-e961-31ab-92d5-9c5bc2048865.png" />
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/250749" style="color:red;">已有 <strong>1</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</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, 09 Oct 2008 14:33:28 +0800</pubDate>
        <link>http://www.javaeye.com/topic/250749</link>
        <guid>http://www.javaeye.com/topic/250749</guid>
      </item>
          <item>
        <title>你到底想要什么？</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://brainstorm.javaeye.com">cjyzpcl</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/250554" style="color:red;">http://www.javaeye.com/topic/250554</a>&nbsp;
          发表时间: 2008年10月09日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong>本来这个是回复http://www.javaeye.com/topic/250326的一个评论，但写完了感觉可能对有些人有点用，开个帖子大家研究下吧。</strong><br /><br /><br />&nbsp;&nbsp;&nbsp; 我是成都电子科大毕业的，3年前本科毕业找工作那会，去上海，北京深圳以及杭州的：好的普遍在5000-7000之间（这个一般是IBM，腾讯这类的），一般的3000-5000。当时成都好公司还不多，我认识的最好的留成都的拿的是4500，普遍在2500-3000之间。这几年成都公司好公司多了，但从你的简历来看很难进这些好的公司，你要知道对应届生来说最重要的反而是背景（当然，你是哪种千里挑一的NB可以无视这句话）。<br /><br /><br />&nbsp;&nbsp;&nbsp; 给你一个建议，虽然说少不入川，但考虑到你家是四川的，我建议你来成都发展。我不是四川人，但这4年多的工作（我大三开始在一家公司做实习生），从上海到成都。成都的IT业发展是很不错的，性价比很高。在成都竞争比上海小的多，3年经验英语很好的，在诺西，IBM，SAP这类外企都可以拿到5000-8000之间的工资。<br /><br /><br />&nbsp;&nbsp;&nbsp; 这里我又想谈下自己的看法，学计算机的嘛，毕业了就想去北京上海一类的，哪里机会多，哪里工资高。但有没有想过哪里对于平庸者是一个地狱？你很nb嘛，到了那里几百个人抢一个职位。同样的一个人才，英语好，技术也不错，3年经验，上海拿好多钱？我相信上海的同行们都知道，好的也就是税后1w的样子吧？可是还是紧张啊，房价摆在那里，消费摆在那里，动辄一百三四十万的房子，你买不买？对房价要跌，可你也不看看一年多少人往上海跑，刚性需求啊！<br /><br />&nbsp;&nbsp;&nbsp; 我当时离开上海的时候，就是拿张纸把自己想要的写上去，然后比较。我就是一个普通人，自我感觉算的上聪明，但绝对不是天才，没啥远大理想。就想有房有车有老婆。当是比较后吓死人，成都房价我研究过，50w绝对能买到一套不错的房子？上海，那么同样规格的最少一百二十万。算算贷款利息什么的，20年下来两个一差就是一百多万。也就是说，在上海你得多赚100w,行算你nb，一年可以存10w,也TMD要10年。车子？你还是别想了吧。当时在上海嘛，也算可以，一个月怎么说到手也有个7000多，可买房子老爸说了只能支持10w,其他自己搞定，你说其他我是去抢还是自己存？<br /><br />&nbsp;&nbsp;&nbsp; 想了4个月，去年国庆的时候终于踏上了去成都的火车，当时绝的特落寞，我觉得自己是失败者，在上海活不下去，现在想想真的可笑。也算是朋友帮忙，成都有自己的人脉，加上自己的底子，1个多月就去了“诺西，IBM，SAP这类外企"中的一家（这里多谢那位帮忙内推的朋友）。当时谈的工资都让我郁闷，我当时不是很懂成都的行情，也是朋友说要多少合适？等到拿到工资实在让人郁闷，到手上有6000多（工作一年了，最近涨了点，到手快7000了）。你说我当时是什么想法，我心里想怎么在成都和上海工资差的这么少？第一个月工资到手后就又做了第二个决定：买房子。找老爸要了十万，自己把积蓄拿了出来，在成都老西门哪里（2环内）买了一套40多万的房子，80多平方。这个位置就相当于上海的中环内！！你自己去比较去吧。贷款贷了20多万，一个月嘛住房公积金抵了1000，然后自己还1000多（我用的等额本金，一开始还的多）。有了房嘛，工作又稳定，你知道人就开始打小算盘了，我就想早点把房贷还了，稍微算了下，怎么算我一个月都能存3500左右，这里吃饭便宜啊，而且住自己的房子。你想想看2年时间不也就可以还个7-8w嘛？然后再看下月供，就只有1400多了，想想就没压力了，工资出个300多就行了。你说说看这都让人郁闷？我还能想念上海吗？国庆朋友来成都玩，一起吃饭，吃着吃着就在抱怨房价，喊他来成都，人家不干，要干大事，上海发展前景大，我当时就心想你不是活该的嘛。<br /><br /><br />&nbsp;&nbsp;&nbsp; 想想你要什么，如果你想要为IT行业做贡献，去上海吧。但如果你想活的好点，那你就要想想了。如果你不是上海人，如果你的家境也就一般（我认为买房时家里能提供首付或者能出一部分钱:10w左右的就叫一般，家里出不起钱就别说了，社会本来就不公平。），那你为什么不去个中小城市呢？尤其这个问题留给我回复的那个主题的楼主，你觉得你想去哪里？<br /><br /><br />&nbsp;&nbsp;&nbsp; 现实点吧，别自己和自己过不去。<br /><br /><br />&nbsp;&nbsp;&nbsp; 哦，最后说点关于英语学习的经验。首先你要确定自己智商正常，然后每天精听一小时（VOA,CNN一类的），泛听2小时（美剧知道吧），觉得自己写的英文是垃圾就把雅思的拿过来自己练。不要2个月再看吧，不是问题。如果学不好，那要么你的语言天赋太NB要么就是没坚持下来。大学没过四级的绝对是态度问题。<br /><br /><br />&nbsp;&nbsp;&nbsp; 你想要什么？实际点吧。
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/250554" style="color:red;">已有 <strong>64</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</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, 09 Oct 2008 05:58:48 +0800</pubDate>
        <link>http://www.javaeye.com/topic/250554</link>
        <guid>http://www.javaeye.com/topic/250554</guid>
      </item>
          <item>
        <title>让你的 Ibatis2 也支持Annotation</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://cnoss.javaeye.com">cnoss</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251047" style="color:red;">http://www.javaeye.com/topic/251047</a>&nbsp;
          发表时间: 2008年10月10日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong><span style="color: Blue">在支持xml配置方式的基础上增加了对annotation的支持，用户可以根据自己的喜好来选择或者两种方式并存。</span></strong><br /><br />详情请大家看：<a href="http://www.rest4g.org/viewthread.php?tid=12&amp;extra=page%3D1" target="_blank">http://www.rest4g.org/viewthread.php?tid=12&amp;extra=page%3D1</a><br /><br />代码示例如下：<br />Account.java<pre name="code" class="java">
package org.jrest4guice.persistence.ibatis;
public class Account {
  private int id;
  private String firstName;
  private String lastName;
  private String emailAddress;

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public String getFirstName() {
    return firstName;
  }

  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }

  public String getLastName() {
    return lastName;
  }

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  public String getEmailAddress() {
    return emailAddress;
  }

  public void setEmailAddress(String emailAddress) {
    this.emailAddress = emailAddress;
  }

}
</pre>AccountService.java<pre name="code" class="java">
package org.jrest4guice.persistence.ibatis;

import java.sql.SQLException;
import java.util.List;

import org.jrest4guice.persistence.ibatis.annotations.Delete;
import org.jrest4guice.persistence.ibatis.annotations.IbatisDao;
import org.jrest4guice.persistence.ibatis.annotations.Insert;
import org.jrest4guice.persistence.ibatis.annotations.Result;
import org.jrest4guice.persistence.ibatis.annotations.ResultMap;
import org.jrest4guice.persistence.ibatis.annotations.Select;
import org.jrest4guice.persistence.ibatis.annotations.Update;
import org.jrest4guice.transaction.annotations.Transactional;
import org.jrest4guice.transaction.annotations.TransactionalType;

import com.google.inject.Inject;
import com.ibatis.sqlmap.client.SqlMapClient;

@IbatisDao
@SuppressWarnings("unchecked")
@Transactional
@ResultMap(id = "accountResultMap", result = {
		@Result(property = "id", column = "id"),
		@Result(property = "firstName", column = "firstName"),
		@Result(property = "lastName", column = "lastName"),
		@Result(property = "emailAddress", column = "emailAddress") }, resultClass = Account.class)
@Cachemodel(id = "account-cache", flushInterval = "24", flushOnExecute = {
		"insertAccount", "updateAccount", "deleteAccount" }, type = "LRU", 
		property = { @Property(name = "size", value = "100") })
public class AccountService {
	@Inject
	private SqlMapClient sqlMapper;

	@Select(id = "selectAllAccounts", sql = "select * from ACCOUNT", 
			resltMap = "accountResultMap", cacheModel = "account-cache")
	@Transactional(type = TransactionalType.READOLNY)
	public List&lt;Account> findAll() throws SQLException {
		return sqlMapper.queryForList("selectAllAccounts");
	}

	@Select(sql = "select id ,firstName,lastName,emailAddress from "
			+ "ACCOUNT where id = #id#")
	@Transactional(type = TransactionalType.READOLNY)
	public Account getAccountById(int id) throws SQLException {
		return (Account) sqlMapper.queryForObject("getAccountById", id);
	}

	@Insert(id = "insertAccount", sql = "insert into ACCOUNT (id,firstName,"
			+ "lastName,emailAddress) values (#id#, #firstName#, #lastName#, "
			+ "#emailAddress#)")
	public void createAccount(Account account) throws SQLException {
		sqlMapper.insert("insertAccount", account);
	}

	@Update(sql = "update ACCOUNT set firstName = #firstName#,lastName = "
			+ "#lastName#,emailAddress = #emailAddress# where id = #id#")
	public void updateAccount(Account account) throws SQLException {
		sqlMapper.update("updateAccount", account);
	}

	@Delete(id = "deleteAccount", sql = "delete from ACCOUNT where id = #id#")
	public void deleteAccount(int id) throws SQLException {
		sqlMapper.delete("deleteAccount", id);
	}

	@Select(id = "queryAccounts", 
		sql = "select * from ACCOUNT "
			+ "&lt;dynamic prepend=\"where\">"
			+ " &lt;isNotNull prepend=\"and\" property=\"firstName\">"
			+ "    firstName = #firstName#" 
			+ " &lt;/isNotNull>"
			+ " &lt;isNotNull prepend=\"and\" property=\"lastName\">"
			+ "    lastName = #lastName#" 
			+ " &lt;/isNotNull>"
			+ " &lt;isNotNull prepend=\"and\" property=\"emailAddress\">"
			+ "    emailAddress = #emailAddress#" 
			+ " &lt;/isNotNull>"
			+ "&lt;/dynamic> " 
			+ "order by lastName", resltMap = "accountResultMap", 
			cacheModel = "account-cache")
	@Transactional(type = TransactionalType.READOLNY)
	/**
	 * 动态SQL查询
	 */
	public List&lt;Account> queryAccounts(Account account) throws SQLException {
		return sqlMapper.queryForList("queryAccounts",account);
	}
}
</pre>AccountServiceTest.java<pre name="code" class="java">
package org.jrest4guice.persistence.ibatis;

import java.sql.SQLException;
import java.util.List;

import junit.framework.Assert;

import org.jrest4guice.guice.GuiceContext;
import org.jrest4guice.guice.PersistenceGuiceContext;
import org.junit.BeforeClass;
import org.junit.Test;

public class AccountServiceTest {
	private static AccountService service;

	@BeforeClass
	public static void setUp() throws Exception {
		// 初始化JRest4Guice
		PersistenceGuiceContext.getInstance().useIbatis(
				"org.jrest4guice.persistence.ibatis").init();
		// 获取服务
		service = GuiceContext.getInstance().getBean(AccountService.class);
	}

	@Test
	public void doTest() {
		List&lt;Account> accounts;
		try {
			Account account = new Account();
			account.setFirstName("张");
			account.setLastName("学友");
			account.setEmailAddress("jackey@rest4g.org");
			// 添加
			service.createAccount(account);

			account = new Account();
			account.setFirstName("刘");
			account.setLastName("学友");
			account.setEmailAddress("test@rest4g.org");
			// 添加
			service.createAccount(account);
			
			//查询（按lastName）
			Account queryCondition = new Account();
			queryCondition.setLastName("学友");
			accounts = service.queryAccounts(queryCondition);
			Assert.assertEquals(2, accounts.size());
			
			//查询（按firstName和lastName）
			queryCondition.setFirstName("张");
			accounts = service.queryAccounts(queryCondition);
			Assert.assertEquals(1, accounts.size());

			// 修改
			account = accounts.get(0);
			account.setFirstName("何");
			service.updateAccount(account);
			account = service.getAccountById(account.getId());
			Assert.assertNotNull(account);
			Assert.assertEquals("何", account.getFirstName());

			//查询所有
			accounts = service.findAll();
			Assert.assertEquals(2, accounts.size());

			// 删除
			for (Account ac : accounts){
				service.deleteAccount(ac.getId());
			}
			
			//断言删除的结果
			accounts = service.findAll();
			Assert.assertEquals(0, accounts.size());
		} catch (SQLException e) {
			Assert.fail(e.getLocalizedMessage());
		}
	}
}
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251047" style="color:red;">已有 <strong>30</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 10 Oct 2008 07:17:02 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251047</link>
        <guid>http://www.javaeye.com/topic/251047</guid>
      </item>
          <item>
        <title>易保面试题目</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liliugen.javaeye.com">liliugen</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/250871" style="color:red;">http://www.javaeye.com/topic/250871</a>&nbsp;
          发表时间: 2008年10月09日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1.你平时都知道怎么写过高效率的SQL<br />2.<br />SPRING 的事务处理你们放在哪一层处理<br />3.两个DAO进行交互，一个DAO失败了是不是另外一个也失败，那这样怎么办啊·<br />4.JSF什么个框架·<br />5.STRUTS&nbsp; 里面ACTIONSERVLET在容器里面是不是就一个？<br /><br />6 如果你说是5的答案一个，就问，那么多人访问你的应用，那么多线程就一个ActionServlet，安全吗？
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/250871" style="color:red;">已有 <strong>26</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 09 Oct 2008 17:56:41 +0800</pubDate>
        <link>http://www.javaeye.com/topic/250871</link>
        <guid>http://www.javaeye.com/topic/250871</guid>
      </item>
          <item>
        <title>工作难觅</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://glamey.javaeye.com">glamey</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/250611" style="color:red;">http://www.javaeye.com/topic/250611</a>&nbsp;
          发表时间: 2008年10月09日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          不知道怎么了，近段时间北京的工作好难找的，国庆节到现在才有两个面试，还都是在南三环那边，好远的。到现在还没回音呢。<br /><br />&nbsp;&nbsp; 只能在屋里边看书，自己写写程序。<br />&nbsp;&nbsp; <br />&nbsp;&nbsp; 期待中。。。。 <br /><br /><img src="/images/smiles/icon_idea.gif"/>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/250611" style="color:red;">已有 <strong>58</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 09 Oct 2008 10:25:51 +0800</pubDate>
        <link>http://www.javaeye.com/topic/250611</link>
        <guid>http://www.javaeye.com/topic/250611</guid>
      </item>
          <item>
        <title>鼓足勇气再一次晒下简历……请Javaeye的大牛们给点意见……</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://cmzy.javaeye.com">cmzy</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/250326" style="color:red;">http://www.javaeye.com/topic/250326</a>&nbsp;
          发表时间: 2008年10月08日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<p>跨专业找工作&hellip;&hellip;可能有点难度&hellip;&hellip;但是还是想知难而上&hellip;&hellip;请JavaEye的大牛给点意见&hellip;&hellip;</p>
<p>&nbsp;</p>
<p><br />
<span style="font-size: small;">&nbsp;<strong>个人信息：</strong>
</span>
<br />
<strong>姓&nbsp;&nbsp;&nbsp; 名</strong>
：张&nbsp; 勇&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>性&nbsp;&nbsp;&nbsp; 别</strong>
：&nbsp;&nbsp; &nbsp;&nbsp; 男&nbsp;&nbsp; &nbsp; <br />
<strong>出生年月</strong>
：********* &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <strong>毕业院校</strong>
：&nbsp;&nbsp; &nbsp;四川农业大学&nbsp;&nbsp; &nbsp;<br />
<strong>学&nbsp;&nbsp;&nbsp; 历</strong>
：本&nbsp; 科&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong> 第一外语：</strong>
&nbsp;&nbsp; &nbsp;&nbsp; 英&nbsp;&nbsp; 语&nbsp;&nbsp; &nbsp;<br />
<strong>住&nbsp;&nbsp;&nbsp; 址</strong>
：四川省雅安市四川农业大学***** ***** &nbsp; <br />
<strong>户&nbsp;&nbsp;&nbsp; 口</strong>
：四川省巴中市&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>身份证号</strong>
：&nbsp;&nbsp; ******************* &nbsp; <br />
<strong>专&nbsp;&nbsp;&nbsp; 业</strong>
：食品质量与安全&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <strong>E - mail:&nbsp;</strong>
&nbsp; &nbsp;zhangyong232@163.com &nbsp;&nbsp; &nbsp;<br />
<strong>联系电话</strong>
：***********&nbsp; &nbsp; <strong>个人主页</strong>
:&nbsp;&nbsp; &nbsp;http://www.blogjava.net/cmzy/<br />
<strong>通信地址</strong>
:四川省雅安市四川农业大学6-25#信箱（邮编：625014）<br />
<strong>求职意向</strong>
：Java程序员<br />
&nbsp;<br />
<br />
<span style="font-size: small;">&nbsp; <strong>IT技能：</strong>
<br />
</span>
<br />
&nbsp; <strong>Java</strong>
：自学一年，比较熟悉。<br />
<br />
&nbsp; <strong>数据库</strong>
：计算机等级考试四级数据库工程师证书，比较熟悉MS SQL Server。 <br />
<br />
&nbsp;<strong> Spring框架</strong>
： 6个月使用经验，比较熟练，有Spring学习笔记一本（pdf文档发布在个人主页）。</p>
<p>&nbsp;</p>
<p>&nbsp; <strong>Delphi </strong>
：一年使用经验，比较熟练，曾做过一些小程序。<br />
<br />
<br />
<strong><span style="font-size: small;">项目经历：</span>
</strong>
<br />
&nbsp; &nbsp;<strong> 2008.4&nbsp;&nbsp;</strong>
 &nbsp; 留言本程序<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个留言本程序，独立开发。开发工具是MyEclipse6.0，涉及技术为Spring+Hibernate+JSTL+SQL-Server2000。为一个单用户的系统，Guest可以查看、签写、搜索留言，在签写留言时系统会过滤管理员设定的敏感字符。管理员可以删除、回复客户的留言，设置敏感字符集、修改密码、管理访问统计信息等。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; <strong>2008.4-2008.5&nbsp;&nbsp;</strong>
 &nbsp; 视频课件点播系统<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个基于Real流媒体技术的视频点播系统，独立开发。用于发布rm、rmvb、ra等格式的视频课件。 采用MyEclipse6.0开发，涉及技术：Spring+Hibernate+JSTL+SQL-Server2000。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户可以浏览、查看、点播课件并能评价课件和给课件评分，浏览他人的评价；浏览量大、评分高的课件将优先显示给用户，同时用户在发表评论时，系统将自动过滤掉管理员设定的敏感字符。 同时用户也可以参加系统发起的投票。<br />
系统管理员可以添加、修改、删除课件分类；发布、修改、删除课件，处理存在坏连接的课件；系统管理员还可以修改投票信息，发布系统公告，维护系统中的其它管理员信息，修改网站名称、链接、版权等系统基础信息等。</p>
<p>&nbsp;</p>
<p> &nbsp;<strong> 2008.9-现在&nbsp;&nbsp;&nbsp; </strong>
四川农业大学食品研究所主页<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 四川农业大学食品研究所主页，独立开发。项目用MyEclipse6.5开发，主要使用了Spring框架，MS SQL Server2000数据库，视图层采用JSTL呈现。由于项目较小，故持久层采用Spring提供的JDBC支持和文件系统相结合的办法。该系统实现了新闻管理、成员管理、科研成果管理、系统栏目管理、管理员管理、公告管理、系统CSS样式自定义等功能。用户可以根据需要定义系统栏目和栏目内容。<br />
本系统使用了Spring2.5提供的很多新功能，比如从2.5开始提供的ParameterizedBeanPropertyRowMapper类、@MVC等，并全部采用Spring注解驱动的配置方式，大大的减少了程序的代码量和和简化了配置文件。<br />
<br />
<span style="font-size: small;"><strong>实习经验：</strong>
</span>
<br />
<br />
<strong>时间：</strong>
2008-7到2008-8<br />
<strong>单位：</strong>
四川新闻网雅安新闻中心　　<strong>工作性质</strong>
：全职<br />
<strong>职务</strong>
：后台管理员、网络维护员<br />
<strong>工作职责：</strong>
<br />
在四川新闻网雅安新闻中心期间，我的职责是四川新闻网雅安频道和甘孜频道的内容更新等后台维护工作，同时也被安排做一些中心办公网络的管理和维护，频道专题网页的制作等工作。<br />
在这期间，我搭建了中心的文档管理系统(使用serv-u作为服务端和自己利用Delphi做的一个客户端)。<br />
<br />
<strong>时间</strong>
：2006-5-13 到2007-5-1<br />
<strong>单位</strong>
： 四川农业大学三皮工作室网络室　　<strong>工作性质</strong>
：兼职<br />
<strong>职务</strong>
：网络管理员<br />
<strong>工作职责：</strong>
<br />
网络室的计算机软件、硬件维护、网络管理等工作，并培训新来的员工。 在这期间，我接触了并初步熟悉了局域网的搭建和管理方法，熟悉了计算机的软件和硬件的维护方法。因为工作室为学生自主创业项目，员工皆为在校学生，因此合理的安排时间和更紧密的合作显的尤为重要，在这里，我体会到了团队的力量。同时也交到了很多喜欢计算机、热爱计算机的朋友。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><!--  [if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:PunctuationKerning/>
  <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
  <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
  <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:SpaceForUL/>
   <w:BalanceSingleByteDoubleByteWidth/>
   <w:DoNotLeaveBackslashAlone/>
   <w:ULTrailSpace/>
   <w:DoNotExpandShiftReturn/>
   <w:AdjustLineHeightInTable/>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:UseFELayout/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--  [if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
 </w:LatentStyles>
</xml><![endif]--> <!--  [if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:普通表格;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]-->
</p>
<p class="MsoNormal" style="text-indent: 5.25pt; line-height: 250%;"><strong><span style="font-family: 宋体;">获奖</span>
<span lang="EN-US">/</span>
</strong>
<strong><span style="font-family: 宋体;">证书：</span>
</strong>
</p>
<p class="MsoNormal" style="text-indent: 5.25pt; line-height: 250%;"><!--  [if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:PunctuationKerning/>
  <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
  <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
  <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:SpaceForUL/>
   <w:BalanceSingleByteDoubleByteWidth/>
   <w:DoNotLeaveBackslashAlone/>
   <w:ULTrailSpace/>
   <w:DoNotExpandShiftReturn/>
   <w:AdjustLineHeightInTable/>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:UseFELayout/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--  [if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
 </w:LatentStyles>
</xml><![endif]--> <!--  [if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:普通表格;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]-->
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><strong><span lang="EN-US">2006-10 </span>
</strong>
<span lang="EN-US"><span>&nbsp;</span>
&nbsp;</span>
<span style="font-family: 宋体;">社会实践优秀个人</span>

</p>
<p class="MsoNormal" align="left" style="text-align: left;"><strong><span lang="EN-US">2007-10&nbsp;</span>
</strong>
<span lang="EN-US"><span>&nbsp; </span>
</span>
<span style="font-family: 宋体;">社会实践优秀个人</span>

</p>
<p class="MsoNormal" align="left" style="text-align: left;"><strong><span lang="EN-US">2007-10 </span>
</strong>
<span lang="EN-US"><span>&nbsp;</span>
&nbsp;</span>
<span style="font-family: 宋体;">全国计算机等级考试三级证书</span>

</p>
<p class="MsoNormal" align="left" style="text-align: left;"><strong><span lang="EN-US">2008-04&nbsp;</span>
</strong>
<span lang="EN-US"> <span>&nbsp;</span>
</span>
<span style="font-family: 宋体;">全国计算机等级考试四级证书</span>

</p>
<p><strong><span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;">2008-10&nbsp;</span>
</strong>
<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;"><span>&nbsp; </span>
</span>
<span style="font-size: 10.5pt; font-family: 宋体;">计算机过级单项奖</span>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><br />
<span style="font-size: small;"><strong>自我介绍：</strong>
</span>
<br />
本人热爱计算机技术，一直坚持自学，并把学习计算机当成我的娱乐生活，因此我在校的大部分时间都花在了计算机上。虽然本人不是计算机专业学生，但是通过努力，我并不觉得我比计算机专业的同学差。与他们相比我觉得我的优势在于我喜欢计算机，爱好才是最强大的学习和工作动力，在长期的学习过程中，虽然因为这样那样的原因也走了不少弯路，&ldquo;浪费&rdquo;了不少时间，但是正是这些弯路给了我受用不尽的经验和教训，让我学会了学习，并爱上了学习。我相信，在我今后的学习和工作中，这些&ldquo;弯路&rdquo;和教训将会给我带来更大的收获；我也相信，我能把这种动力和学习的能力充分的应用到工作中去，以实现自己的人生理想。</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/250326" style="color:red;">已有 <strong>37</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 08 Oct 2008 15:00:24 +0800</pubDate>
        <link>http://www.javaeye.com/topic/250326</link>
        <guid>http://www.javaeye.com/topic/250326</guid>
      </item>
          <item>
        <title>Pomer：基于Flex和Java EE的信息管理系统基础框架</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ke2000.javaeye.com">ke2000</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/249587" style="color:red;">http://www.javaeye.com/topic/249587</a>&nbsp;
          发表时间: 2008年10月06日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Pomer是几个无聊的人利用业余时间做的希望不是无聊的一个基础框架：），目前的功能还不完整，不过我们这几个无聊的人会继续做下去，现在推出的版本功能：一个可以运行的基础框架和代码生成器。<br />&nbsp;&nbsp;&nbsp; 欢迎大家试用，欢迎拍砖 ^_^,以下是简单的介绍和说明，详细请访问:<a href="http://www.pomer.org.cn" target="_blank">http://www.pomer.org.cn</a><br />&nbsp;&nbsp;&nbsp; * Flex 开发框架 <br />Pomer主要采用spring和hibernate做为后台框架，通过blazeds(LCDS)RemoteObject?与java后台通信，前台采用Cairngorm MVC框架， Pomer框架主要作用就是简化blazeds(LCDS)RemoteObject的访问方式，提高开发效率。Pomer通过注解 (Annotation)将普通java对象，Spring Bean和EJB发布为远程对象（RemoteObject）提供给flex访问，而不需要进行任何配置 。<br /><br />&nbsp;&nbsp;&nbsp; * 代码生成器 <br />Pomer 代码生成器包括两个部分，一个是强大灵活通用代码生成器模型和一套基于Pomer的默认模板。 Pomer通用代码生成器采用freemark做为模板引擎，可以生成任何基于数据表或javaPojo和java接口的代码，用户只需提供 freemark的模板即可。 Pomer提供的默认生成功能和默认模板可以通过数据库生成基于Pomer框架可运行的增删改查代码，也可以从javaBean生成 RemoteObject的数据传输对象、表单和列表，还能通过java接口生成Cairngorm的框架代码。<br />&nbsp;&nbsp; <img src="http://lh4.ggpht.com/yulinlincom/SOGFRdmtH5I/AAAAAAAAAcA/OZkaarZMgFU/s576/pomerUserIndex.JPG" />
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/249587" style="color:red;">已有 <strong>30</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 06 Oct 2008 22:32:11 +0800</pubDate>
        <link>http://www.javaeye.com/topic/249587</link>
        <guid>http://www.javaeye.com/topic/249587</guid>
      </item>
          <item>
        <title>hibernate一直的疑问</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://nlvivian.javaeye.com">nlvivian</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251460" style="color:red;">http://www.javaeye.com/topic/251460</a>&nbsp;
          发表时间: 2008年10月10日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          hibernate中,当一个对象持久化将数据库读取后,并将数据保存进缓存中,当第二次读取数据时,它就直接去缓存中取数据了,这点没错吧 <br /><br />用户A访问A机,创建了一个session.检索tableA并对检索结果,持久化. <br />用户B访问B机,创建了一个session.并对tableA做更新操作. <br />用户A再次访问持久话的tableA.如果他从缓存中读取tableA的话.不是无法看到.用户B对tableA做的操作了吗?
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251460" style="color:red;">已有 <strong>5</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 10 Oct 2008 21:16:49 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251460</link>
        <guid>http://www.javaeye.com/topic/251460</guid>
      </item>
          <item>
        <title>细粒度处理事务，尽快的结束事务</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hgq0011.javaeye.com">hgq0011</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/250505" style="color:red;">http://www.javaeye.com/topic/250505</a>&nbsp;
          发表时间: 2008年10月08日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在搭建系统的架构时我们采用了ssh+ajax等方式构建的。我一在和大家说我们要层次分明，思路清晰，可现在都比较糟糕。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 比如：JSP页面用来显示数据的，css用来美化页面，JS用来控制页面的。现在很多页面中什么都有了，臭味很多。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在后台我们也分了action,service,dao层，原本action用来控制调度的，service用来处理相关的业务逻辑的，DAO中用来CRUD数据的。可现在出现了action包裹着一部分逻辑，service就非常简单了，就是用来调用DAO中的方法，而DAO中的方法即包裹了业务处理逻辑又包裹了CRUD数据处理。而且有的业务逻辑非常的复杂，涉及到的表操作很多，比如有</p>
<pre name="code" class="java">//结合spring支持hibernate
Session session = getSession();

//可以能会处理的一些东西
//1)通过hibernate方法select数据
//2)通过hibernate方法update数据
//3)通过hibernate方法delete数据
//4)通过hibernate方法insert数据

//通过session获取Connection，使用JDBC进行数据处理
Connection con = session.getConnection();
//因为有一些逻辑很负责一个select语句涉及的表太多，所以用JDBC来处理。

String sql = "select a ,b ,c ,d from A ,B,C,D where a = ? and b=?";
//反正类似的操作吧，就是关连来多。
</pre>
<p>&nbsp;类似上面的方式，大多数同学在大多数的时候都是这么弄的。我觉得这样做就把业务逻辑和数据处理混淆了，方法太臃肿了，有着浓浓的臭味，不便于维护。XP中提倡面向接口编程、分层、短小的方法。它这么一个长长的方法占用一个连接的时间太长（也就是整个事务的时间延长了），那么当其他的用户对相关的表进行请求时，就会出于等待的状态，资源的竞争，如果长时间是这样死锁就出现了。：（</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 我一般会把他们分布在不同的方法中。</p>
<pre name="code" class="java">//对应表的相关操作
public interface DAO{
     public List get##(String s);
     public void update##(String ...);
     public void delete##(String ...);
     public void insert##(String ...);
     public List find##(String...);

}


public class Service{
    public DAO dao = .......;//注入DAO对象。

    //结合DAO执行相应的业务处理操作
    public List update###(){
           dao.get(s);
           dao.update##(String ...);
           dao.delete##(String ...);
           dao.insert##(String ...);

           //处理更复杂的业务逻辑。
           logice();

           return dao.find##(String...);
   } 

    public void logice(){  
          //to do something  
  } 
   
}</pre>
<p>&nbsp;这样我的每一个DAO中的方法就会用到不同的SESSION（不同的CONNECTION），是这样的吗？但是我是通过SPRING对service层进行事务处理的呀，那是不是说明两种方式都会要占用同样的事务处理资源？</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 看到那些贫血的SERVICE我就郁闷，现在我有检查代码是否存在问题我也迷茫，这事情做的太少了。很多时候我们只顾一直往前跑，没有时间回头看。其实，我们要经常的code view，使用TDD开发模式，用XP的小步发布，这样不要让代码的味道变的太坏，也对自己写的代码充满信心，和用户交流底气十足。开发出来的系统，用户满意，市场行情看涨。：）</p>
<p>请您提出宝贵的意见。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>更新：2008-10-10 22：00</p>
<p>&nbsp;</p>
<p>
我把标题从&ldquo;DAO实现方法中一个Connection捅到底好吗？头疼&rdquo;改成&ldquo;细粒度处理事务，尽快的结束事务&rdquo;，这个是我最终的目的。现在我明白了整
个业务方法调用过程中都是使用同一个SESSION（Connection）。至于业务逻辑怎样来平衡分布，是不是可以把一部分放到ACTION，一部分放到service，Dao只负责和数据库处理。对只读的事务我对其只用readOnly。</p>
<p>比如：我上面的例子是不是可以变成如下的样子呢？</p>
<pre name="code" class="java">//对应表的相关操作
public interface DAO{
     public List get##(String s);
     public void update##(String ...);
     public void delete##(String ...);
     public void insert##(String ...);
     public List find##(String...);

}


public class Service{
    public DAO dao = .......;//注入DAO对象。

    //结合DAO执行相应的业务处理操作
    //该方法上加事务，传播途径为required
    public void update###(){
          
           dao.update##(String ...);
           dao.delete##(String ...);
           dao.insert##(String ...);

           //处理更复杂的业务逻辑。
           logice();
   } 
 
   
   //该方法上加事务，传播途径为required,readOnly
   public  String get###(String s){
          return dao.get(s);
   }

  
   //该方法上加事务，传播途径为required,readOnly
   public List find###(String...){
          return dao.find##(String...);
   }

    public void logice(){  
          //to do something  
  } 
   
}

/**
*那么action中是不是可以变成如下的样子呢？
*
*/
public class Action{
     //注入服务类
     public Service service = null;
     public ActoinForward update###(ActionForm...............){
           //下面这样调用是不是会能更好的呢？
            service. get###(s);
            service. update###();
            service. find###(String...);
    }
}
</pre>
<p>&nbsp;&nbsp; 我们希望能够更快的结束事务，避免不必要的阻塞，保证系统有更好的性能。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/250505" style="color:red;">已有 <strong>11</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</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, 08 Oct 2008 21:40:19 +0800</pubDate>
        <link>http://www.javaeye.com/topic/250505</link>
        <guid>http://www.javaeye.com/topic/250505</guid>
      </item>
          <item>
        <title>想换个工作了，简历也没法晒，只能大概介绍一下情况了，望各位给些建议。</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpple.javaeye.com">zpple</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251141" style="color:red;">http://www.javaeye.com/topic/251141</a>&nbsp;
          发表时间: 2008年10月10日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          个人大概的简介：本科毕业1年多，毕业之前学过比较多东西，专业是电子商务的，选这个专业的时候是想跟马云大哥混来着，后来这个事情就给忘记了，然后就学了CCNA,HCNE,SCJP等等一系列东西，有网络，有J2EE，有LINUX，有软件工程，有项目管理等等等等，然后毕业之后进入Z**，在这里投入到了一个SOA项目，属于国内头一个比较大型的SOA项目吧，是给中国挪动集团做得，是全国范围31省的大项目，合同金额为KW以上，使用JAVA和ORACLE各个套件进行开发，但是来只做了2个月开发，就开始做概要设计，停止了从代码中学东西的机会。不过这一年觉得很充实，因为国内没有SOA成功的案例（大型的），所以项目一直处于相对混乱的状态，但是却因此而接触了编码、设计、架构、项目经理、需求分析、测试、部署等等一系列工作。感觉一年的成长是突飞猛进的，同时在这一年多的时间突然发现自己不太适合做程序员的工作，而对项目管理产生了很浓厚的兴趣，本来自己沟通能力也比较强，所以经理、大经理和产品总监都在倾向于用我来做各方面的接口工作。我来做到了，也得到认可了，而自己却迷茫了，我们项目经理要离开项目，推荐我来做项目经理，但是公司的领导很多，他们觉得我太年轻，没有做PM的资本。其实也对，这么大的一个公司，还有国企背景，觉得这种事情是不可能发生的，O(∩_∩)O，不过对经理的推荐还是表示十分的感谢。现在项目也差不多完成了，正在做上线方面的工作。然后也想换个工作了，想换个小点的公司去做一个PM，想知道各位前辈能不能给我一些指导性的意见，看看以后的路怎么走最合适，:-D
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251141" style="color:red;">已有 <strong>23</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 10 Oct 2008 11:12:48 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251141</link>
        <guid>http://www.javaeye.com/topic/251141</guid>
      </item>
          <item>
        <title>犹豫了两天，终于鼓起勇气把简历拿出来，想批人的尽管进来，挨着饿恭候呢</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yanshiyi.javaeye.com">yanshiyi</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/249901" style="color:red;">http://www.javaeye.com/topic/249901</a>&nbsp;
          发表时间: 2008年10月07日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <table cellspacing="0" border="0" align="center" width="778" cellpadding="1">
<tbody>
<tr height="25" bgcolor="#ffeee0">
<td class="SubTitleTbBd"><strong>基 本 信 息</strong>
            </td>
<td class="SubTitleTbBd" align="right">
<div class="hshow" id="PersionalData_Modify">
                <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="8" />
              </div>
</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="0" align="center" width="778" cellpadding="1">
<tbody>
<tr height="20">
<td width="18%">
               姓
              <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="12" />
              名：
            </td>
<td width="32%">燕剑波</td>
<td width="18%">
               性
              <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="12" />
              别：
            </td>
<td width="32%">男
</td>
</tr>
<tr height="20">
<td> 出生日期：</td>
<td>1983年01月20日</td>
<td> 居 住 地：</td>
<td>北京市
</td>
</tr>
<tr height="20">
<td> 工作年限：</td>
<td>二年以上
</td>
<td>
               户
              <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="12" />
              口：
            </td>
<td>山西
</td>
</tr>
<tr height="20">
<td> 目前年薪：</td>
<td colspan="3">3-4万
人民币
</td>
</tr>
<tr height="20">
<td> 电子邮件：</td>
<td colspan="3">yanshiyi1983@163.com</td>
</tr>
<tr height="20">
<td> 移动电话：</td>
<td colspan="3">086-
		13581714804</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="0" align="center" width="778" cellpadding="1">
<tbody>
<tr>
<td height="2" bgcolor="#ff811e" colspan="2"></td>
</tr>
<tr height="25" bgcolor="#ffeee0">
<td class="SubTitleTbBd">
              <strong>自 我 评 价</strong>
            </td>
<td class="SubTitleTbBd" align="right">
<div class="hshow" id="QualifSummary_Modify">
                <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="8" />
              </div>
</td>
</tr>
<tr>
<td colspan="2">
              <img src="http://images.51job.com/im/space.gif" height="5" alt="" width="1" />
            </td>
</tr>
<tr>
<td id="Cur_Val" colspan="2">喜欢学习，属于自动自发学习的人；能耐心做一件事；性格较为活跃，闲暇喜欢看书，也喜欢学习一些新的技术，求知欲强；事业心强，做事认真负责</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="0" align="center" width="778" cellpadding="1">
<tbody>
<tr>
<td height="2" bgcolor="#ff811e" colspan="2"></td>
</tr>
<tr height="25" bgcolor="#ffeee0">
<td class="SubTitleTbBd">
              <strong>求 职 意 向</strong>
            </td>
<td class="SubTitleTbBd" align="right">
<div class="hshow" id="CareerObjective_Modify">
                <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="8" />
              </div>
</td>
</tr>
<tr>
<td colspan="2">
              <img src="http://images.51job.com/im/space.gif" height="5" alt="" width="1" />
            </td>
</tr>
<tr height="20">
<td width="18%"> 工作性质：</td>
<td width="82%">全职
</td>
</tr>
<tr height="20">
<td width="18%"> 希望行业：</td>
<td width="82%">计算机软件
，互联网/电子商务
</td>
</tr>
<tr height="20">
<td width="18%"> 目标地点：</td>
<td width="82%">上海市
</td>
</tr>
<tr height="20">
<td width="18%"> 期望工资：</td>
<td width="82%">3000-4499
/月</td>
</tr>
<tr height="20">
<td width="18%"> 目标职能：</td>
<td width="82%">软件工程师
</td>
</tr>
</tbody>
</table>
<table cellspacing="0" border="0" align="center" width="778" cellpadding="0">
<tbody>
<tr>
<td height="2" bgcolor="#ff811e" colspan="2"></td>
</tr>
<tr height="25" bgcolor="#ffeee0">
<td class="SubTitleTbBd">
              <strong>工 作 经 验</strong>
            </td>
<td class="SubTitleTbBd" align="right">
<div class="hshow" id="EmploymentHistory_Modify">
                <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="8" />
              </div>
</td>
</tr>
<tr>
<td align="left" colspan="2">
              
<table cellspacing="0" border="0" align="center" width="758" cellpadding="1">
<tbody>
<tr align="left">
<td align="left" colspan="4">2008/03--2008/08：上海博卡软件</td>
</tr>
<tr align="left">
<td align="left" width="25%"> 所属行业：</td>
<td align="left" width="75%" colspan="3">计算机软件
</td>
</tr>
<tr align="left">
<td>
                    <strong>开发部/市场部</strong>
                  </td>
<td colspan="3">
                    <strong>软件工程师
</strong>
                  </td>
</tr>
<tr align="left">
<td id="Cur_Val" colspan="4">3月至5月间在开发部工作，参与公司的S3 GOS系统的研发工作，后转至市场部负责公司网站开发。</td>
</tr>
<tr>
<td colspan="4">
                    
<hr size="1" style="color: #e0e0e0;" />
</td>
</tr>
<tr align="left">
<td align="left" colspan="4">2007/02--2007/09：上海HP公司</td>
</tr>
<tr align="left">
<td align="left" width="25%"> 所属行业：</td>
<td align="left" width="75%" colspan="3">计算机软件
</td>
</tr>
<tr align="left">
<td>
                    <strong>JDCC</strong>
                  </td>
<td colspan="3">
                    <strong>软件工程师
</strong>
                  </td>
</tr>
<tr align="left">
<td id="Cur_Val" colspan="4">作为正信嘉外派人员到HP公司，期间参与3个项目，负责自己对应模块的设计，开发，代码测试及文档编写；在HP的那段时间，技能比以前更为纯熟，并养成了代码写作风格和开发习惯</td>
</tr>
<tr>
<td colspan="4">
                    
<hr size="1" style="color: #e0e0e0;" />
</td>
</tr>
<tr align="left">
<td align="left" colspan="4">2006/08--2007/09：正信嘉电子有限公司</td>
</tr>
<tr align="left">
<td align="left" width="25%"> 所属行业：</td>
<td align="left" width="75%" colspan="3">计算机软件
</td>
</tr>
<tr align="left">
<td>
                    <strong>开发</strong>
                  </td>
<td colspan="3">
                    <strong>软件工程师
</strong>
                  </td>
</tr>
<tr align="left">
<td id="Cur_Val" colspan="4">参与过5个项目，所有项目均采用struts，spring，hibernate；在开发中，本人负责编写DAO类，业务层及表现层代码以及测试，偶尔负责帮助新人解决问题。</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td height="2" bgcolor="#ff811e" colspan="2"></td>
</tr>
<tr height="25" bgcolor="#ffeee0">
<td class="SubTitleTbBd">
              <strong>项 目 经 验</strong>
            </td>
<td class="SubTitleTbBd" align="right">
<div class="hshow" id="ProjectQualifs_Modify">
                <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="8" />
              </div>
</td>
</tr>
<tr>
<td align="left" colspan="2">
              
<table cellspacing="0" border="0" align="center" width="758" cellpadding="1">
<tbody>
<tr align="left">
<td colspan="2">2008/05--2008/08：上海博卡软件网站</td>
</tr>
<tr align="left">
<td width="18%"> 软件环境：</td>
<td width="82%">windows2003，IIS，tomcat，sqlserver</td>
</tr>
<tr align="left">
<td width="18%"> 开发工具：</td>
<td width="82%">lomoboz</td>
</tr>
<tr align="left">
<td valign="top" width="18%"> 项目描述：</td>
<td id="Cur_Val" width="82%">网
站分两个部分：官方网站与管理师俱乐部。官网主要提供新增客户信息，典型案例，常见问题解答，及产品展示等功能。管理师俱乐部的主要经营对象是客户的管理
层人员，提供图书推荐，管理经验共享，可以收藏文章（用ajax实现无刷新提交）。网站后台有简单的权限管理功能，可以发表新闻，管理会员。框架组成为
struts2，spring，hibernate，页面上使用mootools发送实现ajax功能。因为没有太多的扩展需要，取消了层于层之间的接
口，直接使用功能类。俱乐部菜单信息用xml文件保存，使用digest解析，在服务器启动时载入内存，以供浏览网站时生成导航路径使用。struts配
置尽可能的采用了匹配符配置，以减少工作量。为最大限度减少配置，所有action都继承自一个基类action或基类的子类。基类action名为
BaseAction，继承自actionsupport类，定义了一些子类共用的属性，方法。其中一些方法有同名的jsp文件，供struts2转发使
用。BaseAction有一个Pager内部抽象类，用于分页。该内部类由BaseAction的子类在prepare方法中根据传入的参数来实现，
Pager子类统一为匿名内部类，子类只实现。对部分model类用decorator模式进行扩展，以满足页面上的特殊显示需要。在开发过程中，尽可能
的减少了重复性代码，提高了代码重用率。</td>
</tr>
<tr align="left">
<td valign="top" width="18%"> 责任描述：</td>
<td id="Cur_Val" width="82%">除页面设计，所有任务一人完成。</td>
</tr>
<tr align="left">
<td colspan="2">
                    
<hr size="1" style="color: #e0e0e0;" />
</td>
</tr>
<tr align="left">
<td colspan="2">2007/07--2007/09：软银公司 PCL 项目</td>
</tr>
<tr align="left">
<td valign="top" width="18%"> 项目描述：</td>
<td id="Cur_Val" width="82%">日
本SoftBank公司基于IMS（IP Multimedia Subsystem）的增值业务，分为两个模块：PCL on
PC提供一个Web界面供手机用户通过PC编辑Presence Contact List（类似MSN Messenger的联系人列表），IMS
Push遵循Parley
X标准提供一个网关，供内容提供商以Push的方式向收集用户发送多媒体短消息。项目语言为java，采用了struts，spring，ibatis等
框架，数据库为oracle，服务器为weblogic。</td>
</tr>
<tr align="left">
<td valign="top" width="18%"> 责任描述：</td>
<td id="Cur_Val" width="82%">本人所在模块为pcl on pc,项目前期负责stub开发，提供虚拟数据，辅助Module leader协调组员，解决组里新手遇到的问题；后期负责开发会员联系信息的查询功能。</td>
</tr>
<tr align="left">
<td colspan="2">
                    
<hr size="1" style="color: #e0e0e0;" />
</td>
</tr>
<tr align="left">
<td colspan="2">2007/04--2007/06：项目与人力资源管理系统</td>
</tr>
<tr align="left">
<td valign="top" width="18%"> 项目描述：</td>
<td id="Cur_Val" width="82%">该项目为HP公司内部项目，原先使用Excel管理项目与人力资源，因为操作不便，故希望采用web方式管理项目;项目开发语言为java，采用struts,spring,hibernate等框架，数据库为postgres，服务器为tomcat。</td>
</tr>
<tr align="left">
<td valign="top" width="18%"> 责任描述：</td>
<td id="Cur_Val" width="82%">负责登录模块，项目管理管理模块，人月计算功能的开发测试及文档编写。</td>
</tr>
<tr align="left">
<td colspan="2">
                    
<hr size="1" style="color: #e0e0e0;" />
</td>
</tr>
<tr align="left">
<td colspan="2">2006/11--2006/12：SigMessagePro系统升级</td>
</tr>
<tr align="left">
<td valign="top" width="18%"> 项目描述：</td>
<td id="Cur_Val" width="82%">原有邮件系统的管理界面采用CGI实现，维护比较困难，因此升级时改用java实现，基本框架为struts＋spring＋hibernate（Annotations标记来实现数据库映射）。</td>
</tr>
<tr align="left">
<td valign="top" width="18%"> 责任描述：</td>
<td id="Cur_Val" width="82%">负责数据库建立，数据存取代码的实现（本公司主要按层次分工）。</td>
</tr>
<tr align="left">
<td colspan="2">
                    
<hr size="1" style="color: #e0e0e0;" />
</td>
</tr>
<tr align="left">
<td colspan="2">2006/09--2006/10：合同执行管理系统</td>
</tr>
<tr align="left">
<td valign="top" width="18%"> 项目描述：</td>
<td id="Cur_Val" width="82%">项目使用J2EE，采用框架为struts＋spring＋hibernate，系统根据客户签订的合同并生成采购订单，通过订单采购所需的设备，对设备实现借出、出售、发货等操作，从而实现对客户、合同、订单、设备的管理。</td>
</tr>
<tr align="left">
<td valign="top" width="18%"> 责任描述：</td>
<td id="Cur_Val" width="82%">负责管理员管理，客户管理，查询，操作记录等模块与功能的实现。</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td height="2" bgcolor="#ff811e" colspan="2"></td>
</tr>
<tr height="25" bgcolor="#ffeee0">
<td class="SubTitleTbBd">
              <strong>教 育 经 历</strong>
            </td>
<td class="SubTitleTbBd" align="right">
<div class="hshow" id="EducationQualifs_Modify">
                <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="8" />
              </div>
</td>
</tr>
<tr>
<td align="left" colspan="2">
              
<table cellspacing="0" border="0" align="center" width="758" cellpadding="0">
<tbody>
<tr align="left" height="25">
<td width="15%">2002/09--2005/07</td>
<td width="35%">吉林农业大学</td>
<td width="2%"></td>
<td width="25%">电子信息科学与技术
</td>
<td width="2%"></td>
<td width="21%">本科
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td height="2" bgcolor="#ff811e" colspan="2"></td>
</tr>
<tr height="25" bgcolor="#ffeee0">
<td class="SubTitleTbBd">
              <strong>证 书</strong>
            </td>
<td class="SubTitleTbBd" align="right">
<div class="hshow" id="Certification_Modify">
                <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="8" />
              </div>
</td>
</tr>
<tr>
<td align="left" colspan="2">
              
<table cellspacing="0" border="0" align="center" width="758" cellpadding="0">
<tbody>
<tr align="left" height="25">
<td width="15%">2005/04</td>
<td width="55%">全国计算机等级三级A
</td>
<td width="2%"></td>
<td width="28%"></td>
</tr>
<tr align="left">
<td colspan="4">
                    
<hr size="1" style="color: #e0e0e0;" />
</td>
</tr>
<tr align="left" height="25">
<td width="15%">2004/06</td>
<td width="55%">大学英语六级
</td>
<td width="2%"></td>
<td width="28%"></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td height="2" bgcolor="#ff811e" colspan="2"></td>
</tr>
<tr height="25" bgcolor="#ffeee0">
<td class="SubTitleTbBd">
              <strong>语 言 能 力</strong>
            </td>
<td class="SubTitleTbBd" align="right">
<div class="hshow" id="ForeignLanguage_Modify">
                <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="8" />
              </div>
</td>
</tr>
<tr>
<td align="left" colspan="2">
              
<table cellspacing="0" border="0" align="center" width="758" cellpadding="0">
<tbody>
<tr align="left" height="25">
<td width="50%">英语
</td>
<td width="50%">良好
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td height="2" bgcolor="#ff811e" colspan="2"></td>
</tr>
<tr height="25" bgcolor="#ffeee0">
<td class="SubTitleTbBd">
              <strong>IT 技 能</strong>
            </td>
<td class="SubTitleTbBd" align="right">
<div class="hshow" id="Skill_Modify">
                <img src="http://images.51job.com/im/space.gif" border="0" height="1" alt="" width="8" />
              </div>
</td>
</tr>
<tr>
<td align="left" colspan="2">
              
<table cellspacing="0" border="0" align="center" width="758" cellpadding="0">
<tbody>
<tr align="left" height="25">
<td width="33%">技能名称</td>
<td width="33%">熟练程度</td>
<td width="33%">使用时间</td>
</tr>
<tr align="left">
<td colspan="3">
                    
<hr size="1" style="color: #e0e0e0;" />
</td>
</tr>
<tr align="left" height="25">
<td width="33%">Java
</td>
<td width="33%">熟练
</td>
<td width="33%">12月</td>
</tr>
<tr align="left" height="25">
<td width="33%">HTML
</td>
<td width="33%">熟练
</td>
<td width="33%">12月</td>
</tr>
<tr align="left" height="25">
<td width="33%">JavaScript
</td>
<td width="33%">熟练
</td>
<td width="33%">12月</td>
</tr>
<tr align="left" height="25">
<td width="33%">CSS
</td>
<td width="33%">一般
</td>
<td width="33%">12月</td>
</tr>
<tr align="left" height="25">
<td width="33%">JSP
</td>
<td width="33%">熟练
</td>
<td width="33%">12月</td>
</tr>
<tr align="left" height="25">
<td width="33%">XML
</td>
<td width="33%">一般
</td>
<td width="33%">3月</td>
</tr>
<tr align="left" height="25">
<td width="33%">WebLogic
</td>
<td width="33%">一般
</td>
<td width="33%">6月</td>
</tr>
<tr align="left" height="25">
<td width="33%">SQL
</td>
<td width="33%">熟练
</td>
<td width="33%">12月</td>
</tr>
<tr align="left" height="25">
<td width="33%">Oracle
</td>
<td width="33%">一般
</td>
<td width="33%">3月</td>
</tr>
<tr align="left" height="25">
<td width="33%">SQL Server
</td>
<td width="33%">一般
</td>
<td width="33%">5月</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/249901" style="color:red;">已有 <strong>88</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 07 Oct 2008 16:23:36 +0800</pubDate>
        <link>http://www.javaeye.com/topic/249901</link>
        <guid>http://www.javaeye.com/topic/249901</guid>
      </item>
          <item>
        <title>现在的公司到底需要什么样的人，我到底还缺什么呢？</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshallzhu.javaeye.com">marshallzhu</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251462" style="color:red;">http://www.javaeye.com/topic/251462</a>&nbsp;
          发表时间: 2008年10月10日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<p>最近一直都在找工作。可是，非常的不顺利。投出很多份简历，只有一次电话面试，一次面试，其他的都毫无音讯。</p>
<p>所以，一直在想，我到底缺什么呢？<br /><br />刚毕业的时候找工作，遇到很大的困难，虽然自我感觉技术还不错，可是，因为学历的问题，落得个四处碰壁。好容易找到个工作，就这么一干有十年了。<br /><br />那个时候就想，恩，学历是弱势，我要提高学历。结果，十年后的今天，再去找工作，却发现硕士学位依然毫无用处。<br /><br />那我缺技术？<br />恩，想想，我的技术特长，好像确实没有什么特别突出的，什么都会点，什么也都不算差。<br />&nbsp; * 网络上，尽管没有CCIE那么强，可也经常和CCNP一起讨论问题；</p>
<p>&nbsp; * OS上，虽然不是FreeBSD的Contributor，但是架个服务，拿源码过来根据需要改改（之前就发现过一个ipfw在bridge上的bug），还都没有问题；</p>
<p>&nbsp; * 编程语言，真还学过不少，很早之前用MASM写TSR程序，到现在用Ruby当做Script用，对各种语言都还算熟悉；</p>
<p>&nbsp; * 项目经历上呢，也有不少，只是都是中小型的；</p>
<p>&nbsp; * 管理上，也还算有些经验。</p>
<p><br />所以，总觉得技术上不会缺太多吧。</p>
<p>&nbsp;</p>
<p>那么，是因为我对SSH不熟？</p>
<p>可是，Java &lt;&gt; SSH 的啊，Seam刚出来的时候，我就在项目中用过的啊。SSH，我想如果真的要用的话，1、2个月就应该熟悉了吧。</p>
<p>&nbsp;</p>
<p>那么，我缺一锤定音的软件来证明自己？</p>
<p>比如，3、5年前，写过一个不成型的编译器，想将PHP编译成JVM Bytecode，最后因为精力问题，只做到处理简单的语句和简单的类就结束了。我就在想，当时是不是坚持下去，写出个jPHP，再去找工作，就能得到别人的认可了？可是，可是，如果真的是这样的话，那么找的也不是月薪6000元人民币的工作了吧，可是，可是，就算是这样，就真的能找到工作了？</p>
<p>可是，这也不过是在简历当中，多一句话而已。我现在面临的问题是，连电话面试的机会都没有，也就是说在HR那里，看一眼就删除了。</p>
<p>（简历，已经请有HR经验的人看过了，说没有结构上和表述上的问题）</p>
<p>&nbsp;</p>
<p>那到底缺什么呢？</p>
<p>&nbsp;</p>
<p><img src="/images/smiles/icon_cool.gif" alt="" /> <img src="/images/smiles/icon_sad.gif" alt="" /></p>
<p>&nbsp;</p>
<p>迷茫。。。。</p>
<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251462" style="color:red;">已有 <strong>1</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</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, 10 Oct 2008 21:29:59 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251462</link>
        <guid>http://www.javaeye.com/topic/251462</guid>
      </item>
          <item>
        <title>SOA研究</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jiage17.javaeye.com">jiage17</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251453" style="color:red;">http://www.javaeye.com/topic/251453</a>&nbsp;
          发表时间: 2008年10月10日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          过两天就要硕士研究生开题报告了。<br />导师只是给了个研究方向题目让自己选，于是我本人想研究点SOA方面的东西<br />可本人对SOA认识实在有限，其理论和应用感觉非常难以搞懂<br />实在不知道这个领域的深浅<br />不知道哪位前辈做过这方面的研究请求指点一下<br />给个方向，给个题目是个项目也行，我是本着学习的态度的呵呵
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251453" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 10 Oct 2008 20:53:26 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251453</link>
        <guid>http://www.javaeye.com/topic/251453</guid>
      </item>
          <item>
        <title>求职(J2ME方向,动漫游戏方面) </title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jingjing123.javaeye.com">zhangxiaojing</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251445" style="color:red;">http://www.javaeye.com/topic/251445</a>&nbsp;
          发表时间: 2008年10月10日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          姓名:张晓晶&nbsp; 男<br /><br />年龄:21<br /><br />学校:南京工业职业技术学院<br /><br />专业:计算机多媒体<br /><br />欲求:J2ME方向,动漫游戏方面工作(实习)<br /><br />工作地点:上海,江苏<br /><br />基本技能: JAVA移动开发:J2ME<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 游戏,动漫:MAYA动画,3DMAX建模,PHOTOSHOP.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 掌握JavaScript，Ajax,DIV+CSS，Flash,Html等客户端开发语言；<br /><br />奖励:<br /><br />江苏省大学生足球机器人比赛 二等奖.<br /><br />江苏省08届" 挑战杯"创业计划大赛 二等奖.<br /><br />工作经历:<br /><br />08年8月.南京某珠宝网站前台设计.
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251445" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</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, 10 Oct 2008 20:31:38 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251445</link>
        <guid>http://www.javaeye.com/topic/251445</guid>
      </item>
          <item>
        <title>招聘技术主管</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://eruc.javaeye.com">eruc</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251444" style="color:red;">http://www.javaeye.com/topic/251444</a>&nbsp;
          发表时间: 2008年10月10日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          工作职责：<br />实验室管理系统的架构和开发<br /><br />任职要求： <br /><br />1.善于沟通，了解客户需求，有很好的团队精神，能够承担较大压力； <br /><br />2.专科以上学历，2年以上的面向对象系统分析和设计经验，及J2EE设计及开发经验；<br /><br />3.熟练使用Tomcat等应用服务器；<br /><br />4.熟练掌握几种开发框架（Struts、Hibernate、Spring等）；<br /><br />5.熟练掌握基于sqlserver的数据库编程；<br /><br />6.控制项目研发进度，带团队或配合兼职团队研发<br /><br />联系人： 岳先生&nbsp; msn:51bbk@live.cn
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251444" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 10 Oct 2008 20:28:42 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251444</link>
        <guid>http://www.javaeye.com/topic/251444</guid>
      </item>
          <item>
        <title>理解渐进增强（Progressive Enhancement）</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lifesinger.javaeye.com">lifesinger</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/250687" style="color:red;">http://www.javaeye.com/topic/250687</a>&nbsp;
          发表时间: 2008年10月09日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="post-content">
<p>原文：<a href="http://www.alistapart.com/articles/understandingprogressiveenhancement">Understanding Progressive Enhancement</a><br />
作者：<a href="http://www.alistapart.com/authors/g/aarongustafson">Aaron Gustafson</a><br />
翻译：<a href="http://lifesinger.org/">http://lifesinger.org/</a></p>
<p><img class="alignright size-full wp-image-302" title="progressive-enhancement" src="http://lifesinger.org/blog/wp-content/uploads/2008/10/progressive-enhancement.jpg" height="452" alt="" style="float: right;" width="270" /><br />
从1994年开始，Web开发社区就敲响了<a href="http://en.wikipedia.org/wiki/Graceful_degradation">优雅降级（Graceful Degradation）</a>的
鼓声。这个概念来自工程世界，其核心理念是给最新最强大的浏览器全套餐式的体验，而给那些不幸还在使用Netscape
4的可怜人们只留些残羹冷炙般的基本功能。毫无疑问，这发挥了作用。但是它并不很符合Tim
Berners-Lee（译注：万维网之父）关于普遍可访问性网络（Universally Accessible Web）的原始愿景。</p>
<p>大约10年后，一些聪明的家伙开始质疑优雅降级，发现它在很多层面上有不足之处。他们将精力集中在内容可用性（Content
Availability）、总体可访问性（Overall
Accessibility）和移动设备浏览器的能力上，寻找到了一条Web开发的新途径&mdash;&mdash;此方法将内容作为关注焦点，而不只是对旧设备的支持嘴上说说
却没有实际行动。</p>
<p>在2003年的<a href="http://sxsw.com/">SXSW</a>会议（译注：一个关于电影、音乐和交互的会议）中，Steve Champeon和Nick Finck做了一个名为 &ldquo;<a href="http://www.hesketh.com/publications/inclusive_web_design_for_the_future/">面向未来的全方位Web开发</a>&rdquo; 的演讲。这样，他们揭示了这种Web开发新方法的蓝图。Steve还给它取了个名称：渐进增强（<a href="http://en.wikipedia.org/wiki/Progressive_enhancement">Progressive Enhancement</a>）。</p>
<p>&nbsp;</p>
<h3>这里有个（微妙的）差别</h3>
<p>如果你挠着头想弄清楚优雅降级和渐进增强的区别，我告诉你，这是一个关于视角的问题。优雅降级和渐进增强都考虑一个网页在各种设备的各种浏览器上如何良好运转。两者区别的关键在于它们各自关注的焦点，以及这种关注对工作流程的影响。</p>
<p>&nbsp;</p>
<h4>优雅降级的视角</h4>
<p>优雅降级关注于在最先进/最全能的浏览器上构建网站。在被认为&ldquo;老的&rdquo;或能力不足的浏览器中的测试，经常要等到开发周期的最后一个环节才进行，并且通常限制在主流浏览器（如IE、Mozzila等）的前一个发布版本中。</p>
<p>在这种模式下，老的浏览器只可能提供差强人意（poor, but passable）的体验。或许会做些小补丁来适应某个特定浏览器，但这些浏览器毕竟不是关注的焦点，除了修正重大的错误，也不会再费多大的神了。</p>
<p>&nbsp;</p>
<h4>渐进增强的视角</h4>
<p>渐进增强关注于内容。请注意区别：我甚至都没提及浏览器。</p>
<p>内容是我们最初创建网站的原因。有些网站传播内容，有些收集内容，有些请求内容，有些操作内容，有些网站以上所有功能都有，然而它们都需要内容。这就是渐进增加成为一种更适合的模式的关键所在。这也是Yahoo!迅速采纳这种模式并用它创建了<a href="http://developer.yahoo.com/yui/articles/gbs/">分级浏览器支持（Graded Browser Support）</a>策略的原因。</p>
<p>&nbsp;</p>
<h3>它是怎样运作的</h3>
<p>进入渐进增强的思维方法很简单：只要从内容开始往外想。内容形成坚实的基石，在此之上你才能添加样式和交互。如果你爱吃糖果，可以将它想像成一颗M&amp;M花生巧克力：<br />
<img class="alignnone size-full wp-image-300" title="m-m" src="http://lifesinger.org/blog/wp-content/uploads/2008/10/m-m.png" height="231" alt="" width="500" /><br />
（图示：渐进增强的巧克力层）</p>
<p>从你的内容花生开始，将其标记为富含语义的(X)HTML. 接着给内容裹上一层富含奶油的CSS. 最后，添加JavaScript作为糖果硬壳，这就做成了一颗可口无比的美味（并使得它不会在你手里融化）。</p>
<p>如果你非常熟悉Web标准化运动的口号&mdash;&mdash;分离、分离、分离&mdash;&mdash;这个类比就相当清楚了。基于Web标准的开发经常被比作<a href="http://www.flickr.com/photos/aarongustafson/83123599/">夹心蛋糕</a>（或者，可以更富想像力地比作为<a href="http://www.stuffandnonsense.co.uk/archives/web_standards_trifle.html">松糕</a>（译注：一种多层蛋糕，可以夹水果、奶油、沙司等））。</p>
<p>我更倾向拿M&amp;M花生巧克力来类比，因为它的外层把内容完全包裹住了，这和我们的样式与脚本将内容包裹起来几乎是一样的。</p>
<p>如果你允许我的食物类比论再多讲一点（希望不会让你感觉饥饿），我将解释为什么这种方式更好以及在这种模式下各层之间是如何交互的。</p>
<p>&nbsp;</p>
<h4>花生仁</h4>
<p>有些人喜欢花生。实际上，有人喜欢花生胜过M&amp;M花生巧克力。类似地，有些家伙（以及像搜索引擎爬虫这类东西）只想要内容。</p>
<p>还有些人无福消受花生上的巧克力和糖果层（例如糖尿病患者）。和他们类似，移动设备或老浏览器用户可能无法看到你漂亮的设计，或者与你流畅的AJAX驱动的界面交互。</p>
<p>确保你的标记能够将所包裹的内容的细节最大限度地传达出来，这对于给这些用户提供基本体验至关重要。</p>
<p>&nbsp;</p>
<h4>巧克力外衣</h4>
<p>接下来，你可以将内容小心地浸入芳香美味的CSS暖浴中了。不过在你跳进糖果硬壳之前，还有些额外的考虑。</p>
<p>有的人爱吃巧克力裹着的花生。这些人就像中级用户，他们的浏览器有比较好的CSS支持，但可能没有很好的JavaScript支持。或者，可能在他
们工作的公司里，IT安全人员对JavaScript极其病态性地恐惧。对他们来说，JavaScript就可能完全被禁用了。</p>
<p>无论是倾向于爱吃<a href="http://en.wikipedia.org/wiki/Chocolate-coated_peanut">巧克力花生</a>（译注：一种直接用巧克力覆盖的花生，没有外层硬壳，类似于有内容和CSS但没有JavaScript支持的网站）还是被限制只能吃<a href="http://en.wikipedia.org/wiki/Chocolate-coated_peanut">巧克力花生</a>，这些人都应该得到满足。这里有几种渐进增强的方式可以将样式应用于内容，这将是本系列第二篇文章的话题。</p>
<p>&nbsp;</p>
<h4>糖果硬壳</h4>
<p>最后，你可以将JavaScript添加到内容和样式的混合体中了。JavaScript提供了富交互的可能性，同时具有操作内容层和展现层并与其交互的能力，这实际上使得JavaScript成为了把网站带入&ldquo;体验&rdquo;高度的一味配料。</p>
<p>我不确定糖果硬壳到底是怎样添加到M&amp;M花生巧克力上的（我猜是另一种什么浸蘸过程吧），但是，你脑中想着渐进增强的话，在你的网站上加入
基于JavaScript的功能和交互就轻而易举了。另外，就如M&amp;M花生巧克力有各种各样颜色一样，依据所运行的浏览器和设备的能
力，JavaScript的体验也可以各不相同。</p>
<p>正如你可能知道的那样，这种类型的开发叫做无侵入式（Unobtrusive）JavaScript. 我将在本系列的第三篇和最后一篇文章中讲述这些技巧和实践。</p>
<p>&nbsp;</p>
<h3>都放在一起</h3>
<p>一旦理解了渐进增强的理念并开始在实践中使用，那么用渐进增强进行开发就非常简单了。也许比做糖果还简单。本系列接下来的两篇文章将帮助你使用CSS和JavaScript来磨练你的渐进增强技巧，并向你展示怎样把哲学转换成代码。</p>
<p>&nbsp;</p>
<p>~~~~~~</p>
<h3>译注：</h3>
<ol>
<li>Graceful Degradation有译为预留退路、平稳退化的，但我觉得这两个翻译没有表达原意，不如直接翻译成优雅降级的好。</li>
<li>Unobtrusive有译为不唐突的、分离的、低调的，在Web开发领域，我觉得翻译成&ldquo;无侵入的&rdquo;最能表达原意。</li>
</ol>
<p>2008年10月8日 射雕&amp;安吉 译于杭州<br />
2008年10月9日 审校</p>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/250687" style="color:red;">已有 <strong>7</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 09 Oct 2008 12:48:34 +0800</pubDate>
        <link>http://www.javaeye.com/topic/250687</link>
        <guid>http://www.javaeye.com/topic/250687</guid>
      </item>
          <item>
        <title>封装JXL的小工具（二）</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://allenben.javaeye.com">allenBen</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251443" style="color:red;">http://www.javaeye.com/topic/251443</a>&nbsp;
          发表时间: 2008年10月10日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java"></pre>
<p>&nbsp;编译Schema:<br />xjc jxl.xsd -p jxl.jaxb<br />生成N多文件：<br /><img src="/upload/attachment/41943/045944ae-4e26-3843-831d-9b5608baf126.jpg" height="288" alt="生成的Java文件" style="VERTICAL-ALIGN: middle" width="207" /></p>
<p>生成的Java文件全部放在jxl.jaxb包下。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>然后对Excel类编辑：</p>
<pre name="code" class="java"><strong>@XmlRootElement(name="excel")//添加</strong>
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "excel", propOrder = {
    "format",
    "sheet"
})
public class Excel {

    ...

}
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>JAXBExcel类：</p>
<p>构造函数：</p>
<pre name="code" class="java">public JAXBExcel(Source xml, Source xsl) {
	try {
		Transformer trans = TransformerFactory.newInstance()
				.newTransformer(xsl);
		JAXBContext context = JAXBContext.newInstance("jxl.jaxb");
		JAXBResult result = new JAXBResult(context);
		trans.transform(xml, result);
		table = (Excel) result.getResult();
		Marshaller marshaller = context.createMarshaller();
		marshaller.setProperty("jaxb.formatted.output", true);
		marshaller.setProperty("jaxb.encoding", "UTF-8");
		marshaller.marshal(table, System.out);
	} catch (Exception e) {
		e.printStackTrace();
		throw new RuntimeException(e.getMessage());
	}
}</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>处理XML文件：</p>
<pre name="code" class="java">public void process(OutputStream os) throws IOException, WriteException,
		ParseException {
	if (table == null) {
		throw new RuntimeException("The table is not init yet");
	}
	processFormat(table.getFormat());
	WritableWorkbook excel = Workbook.createWorkbook(os);
	Iterator&lt;ExcelSheet&gt; excelSheets = table.getSheet().iterator();
	for (int i = 0; excelSheets.hasNext(); i++) {
		ExcelSheet sheetData = excelSheets.next();
		WritableSheet sheet = excel.createSheet(sheetData.getName(), i);
		// sheet.getSettings().setProtected(true);
		// sheet.getSettings().setPassword("zhaobq");
		// 锁定单元格，设置保护密码
		int row = 0;
		if (sheetData.getHead().getRow().size() &gt; 0) {
			this.setView(sheet, sheetData.getHead().getRow().get(
					sheetData.getHead().getRow().size() - 1));
		}

		row = processTitle(sheetData.getTitle(), sheet, row);
		row = processHead(sheetData.getHead(), sheet, row);
		row = processBody(sheetData.getBody(), sheet, row);
		row = processFoot(sheetData.getFoot(), sheet, row);
	}// TABLE
	excel.write();
	excel.close();
}</pre>
<p>&nbsp;</p>
<p>JAXBExcel类中公共的方法就这两个：</p>
<p>首先用XML数据文件和XSL模板文件构造JAXBExcel对象，</p>
<p>&nbsp;</p>
<p>然后用JAXBExcel.process()得到文件的输出流</p>
<p>&nbsp;</p>
<p>全部代码：</p>
<pre name="code" class="java">package jxl;

import static jxl.write.WritableFont.ARIAL;
import static jxl.write.WritableFont.BOLD;
import static jxl.write.WritableFont.DEFAULT_POINT_SIZE;
import static jxl.write.WritableFont.NO_BOLD;

import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*；
import javax.xml.bind.*;
import javax.xml.bind.util.JAXBResult;
import javax.xml.transform.*;

import jxl.format.*;
import jxl.jaxb.*;
import jxl.write.*;

/**
 * 
 * @author Allen 赵本钱
 *
 */
public class JAXBExcel {

	private Excel table = null;

	/**
	 * 默认CELLFORMAT
	 */
	public static Map&lt;String, WritableCellFormat&gt; CELL_FORMAT = new HashMap&lt;String, WritableCellFormat&gt;();

	private Map&lt;String, WritableCellFormat&gt; cellFormat = null;

	private String numberFormat = "####.##";

	private String dateFormat = "yyyy-MM-dd";

	private static List&lt;String&gt; COLUMN_TYPE = new ArrayList&lt;String&gt;();

	static {
		WritableFont foot = new WritableFont(ARIAL, 10);
		WritableFont body = foot;
		WritableFont head = new WritableFont(ARIAL, 10);
		WritableFont title = new WritableFont(ARIAL, 15);
		try {
			head.setBoldStyle(BOLD);

			title.setBoldStyle(BOLD);
		} catch (WriteException e) {
			e.printStackTrace();
		}
		WritableCellFormat cfoot = new WritableCellFormat();
		WritableCellFormat cbody = cfoot;
		WritableCellFormat chead = new WritableCellFormat();
		WritableCellFormat ctitle = new WritableCellFormat();
		try {
			cfoot.setAlignment(Alignment.GENERAL);
			cfoot.setWrap(false);

			chead.setAlignment(Alignment.CENTRE);
			chead.setWrap(false);
			chead.setBackground(Colour.GRAY_25);

			ctitle.setAlignment(Alignment.CENTRE);
			ctitle.setWrap(false);
		} catch (WriteException e) {
			e.printStackTrace();
		}
		cfoot.setFont(foot);
		cbody.setFont(body);
		chead.setFont(head);
		ctitle.setFont(title);
		CELL_FORMAT.put("foot", cfoot);
		CELL_FORMAT.put("body", cbody);
		CELL_FORMAT.put("head", chead);
		CELL_FORMAT.put("title", ctitle);
	}

	public JAXBExcel(Source xml, Source xsl) {
		try {
			Transformer trans = TransformerFactory.newInstance().newTransformer(xsl);
			JAXBContext context = JAXBContext.newInstance("jxl.jaxb");
			JAXBResult result = new JAXBResult(context);
			trans.transform(xml, result);
			table = (Excel) result.getResult();
			Marshaller marshaller = context.createMarshaller();
			marshaller.setProperty("jaxb.formatted.output", true);
			marshaller.setProperty("jaxb.encoding", "UTF-8");
			marshaller.marshal(table, System.out);
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e.getMessage());
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see jxl.Excel#process(java.io.OutputStream)
	 */
	public void process(OutputStream os) throws IOException, WriteException, ParseException {
		if (table == null) {
			throw new RuntimeException("The table is not init yet");
		}
		processFormat(table.getFormat());
		WritableWorkbook excel = Workbook.createWorkbook(os);
		Iterator&lt;ExcelSheet&gt; excelSheets = table.getSheet().iterator();
		for (int i = 0; excelSheets.hasNext(); i++) {
			ExcelSheet sheetData = excelSheets.next();
			WritableSheet sheet = excel.createSheet(sheetData.getName(), i);
			// sheet.getSettings().setProtected(true);
			// sheet.getSettings().setPassword("zhaobq");
			// 锁定单元格，设置保