﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-满江红-J2EE</title><link>http://www.blogjava.net/zhangxv/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:04:56 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:04:56 GMT</pubDate><ttl>60</ttl><item><title>Hibernate发展之路</title><link>http://www.blogjava.net/zhangxv/archive/2006/03/02/33167.html</link><dc:creator>怀素</dc:creator><author>怀素</author><pubDate>Thu, 02 Mar 2006 04:02:00 GMT</pubDate><guid>http://www.blogjava.net/zhangxv/archive/2006/03/02/33167.html</guid><description><![CDATA[<P>在Java世界，Hibernate是最引人关注的一个话题。从Gavin King加入EJB3.0 EG，负责制订EJB3.0的持久层规范；到Gavin King非正式退出JDO EG，并且充满个人情绪的攻击JDO2.0规范；到《Hibernate in Action》的发行；再到Hibernate3 Alpha的发布；最后再到最近JBoss 3.0 PR的发布(使用Hibernate3实现Entity Bean)。可以说这其中的每一步都引起业界的侧目。</P>
<P>Hibernate在不到3年的时间里，从一个不起眼的开源软件发展到今天令业界瞩目的主流O/R Mapping框架，Gavin King从一个开源软件的作者成为业界举足轻重的人物，这多少有些传奇的色彩。毕竟，单纯从技术成就而言，Hibernate不算是最有成就的Java开源框架软件，到目前为止也不是一个完美无缺的软件；从个人技术水平而言，Gavin King也不算绝顶高手。</P>
<P>在当前的Java持久层框架中，最流行的O/R Mapping产品分别是Hibernate，JDO和TopLink。</P>
<P>自从去年Gavin King加入JBoss之后，Hibernate已经由一个民间的开源软件走上了兼容EJB EntityBean的道路。然而更加令人侧目的是，Gavin King在EJB3.0 EG中充当了一个非常重要的角色，只要对比一下EJB3.0的EntityBean和Hibernate3，真相就会大白，虽然API接口不同，但是 EntityBean的设计理念完全来自于Hibernate。</P>
<P>虽然EJB3.0的EntityBean在相当程度上来源于Hibernate，但是毕竟是不同的API接口，因此Hibernate和EJB3.0 EntityBean究竟是怎样的一种关系，是很多人心中的疑问。</P>
<P>2004年四月份JBoss的Ben Wang访华期间，我曾经向Ben请教Hibernate的未来发展，他回答说，Hibernate未来将仍旧以独立的软件产品存在和发展，既可以 outside EJB container使用；同时Hibernate也将做为JBoss EntityBean Implementation，又可以inside EJB container使用。然而如何既inside，又outside，终究缺乏一个感性的认识。</P>
<P>10月8日JBoss发布的EJB3.0 PR揭开了答案。从Sourceforge的CVS服务器上面checkout出来源代码看一下，我们可以发现，Gavin King对Hibernate3进行了简单的封装，将EJB 3.0 EntityBean API调用转换为内部Hibernate3自己的API，从而实现EJB3.0 EntityBean的兼容。</P>
<P>EJB3.0不承诺脱离容器调用，如果你想享用EJB3.0，则必须运行在某个EJB Vendor提供的容器内，例如你使用JBoss提供的容器，那么你调用的是EntityBean API，这些调用请求会被转换为Hibernate API的调用请求。这意味着Hibernate实际上提供了两套API：一套是Hibernate原生API；另一套是兼容EJB3.0 EntityBean API。对于那些需要分布式调用支持，需要EJB容器的开发人员来说，他们选择后一套API；对于不需要EJB容器的开发人员来说，他们选择前一套 API。这就是Hibernate既定的发展策略。</P>
<P>今年夏天投票通过的JDO2.0标准从某种程度而言，并不逊色于Hibernate当前的版本，有些功能甚至比Hibernate还要好，例如 JDO支持对类属性的lazy loading，而Hibernate要到3才支持，当前Hibernate仅仅支持类的lazy loading。实际上在去年，就已经有很多用户不断提出对类属性的lazy loading的需求，然而Gavin King当时一直不认为这个需求有添加的必要性。再例如被Gavin King形容为“可憎的”JDOQL，实际上是类SQL查询语言和对象条件查询的混合体。从功能上来说，不如HQL强大，但是比Hibernate自己的条件查询强。</P>
<P>不知道究竟出于什么原因，Gavin King对JDO似乎一直怀有由衷的厌恶，5月，他在Hibernate的blog上面对JDO进行了毫不留情的批判，列举了JDO的种种缺点来解释为什么EJB3持久层规范没有把JDO考虑进去。然而事实上他的批判充满了对JDO的误解和偏见，例如Gavin King憎恨JDOQL丝毫没有什么特别的理由，只因为JDOQL不是一个纯粹的查询语言，而是一个混合体，这多少让人对Gavin King的风度感到遗憾。在被SolarMetric的Abe White反驳之后，同样没有风度的说，“我可没有时间做这种无谓的争论，事实上每个人都认为他自己的技术是最好的……我是错了，JDO那伙人也错了，每个人都会犯错误……”。（所以说人无完人阿！）</P>
<P>JDO2规范的出台事实上构成了对Hibernate，乃至基于Hibernate理念的EJB3.0 EntityBean的严重威胁。JDO1.0规范在功能上的严重缺失导致了JDO无力面对Hibernate和TopLink的竞争，然而功能基本完备的JDO2挟众多JDO Vendor商业支持的合力，同时JDO规范可以避免产品锁定在某个Vendor的优势，已经将竞争的天平拉直。</P>
<P>然而JDO2和EJB3两大商业主流标准的分裂，是大部分人，甚至包括厂商所不希望看到的。 于是最终EJB3的Lead Linda DeMichiel和JDO2的Lead Craig Russell联名发表公开信，宣布了一个合并EJB3和JDO2持久层规范的计划，新的持久层规范将以JSR-220(EJB3.0)的持久层规范为基础，融合JDO2的部分特性。新的持久层规范将进入J2EE1.5之中，独立于EJB存在，既可以inside J2EE容器来使用，也可以脱离J2EE容器，独立的运行。</P>
<P>这个新的持久层框架可以说完全是一个政治的产物。EJB Vendors出于自身利益反对JDO，使得JDO没有办法成为J2EE的一部分，然而标准的分裂也是大部分人更加不希望看到的，于是最终JDO成了政治斗争的牺牲品。从表面上来看，JDO和EJB3.0 EntityBean都将被新的持久层框架取代，似乎JDO并没有吃亏，但实际上JDO2标准已经成熟，部分JDO领导厂商的产品已经蓄始待发，而 EJB3.0 EntityBean还处于Early Draft，等待产品诞生至少也是一年之后的事情了；另外值得耐人寻味的是，新的持久层框架将基于当前EJB3.0 EntityBean，再结合JDO2的规范，并且将处于EJB3.0 EG的控制之下，再加入一些JDO2 EG的成员。因此可以看出来新的持久层框架无疑还是以EJB3.0 EG为主导进行制定的。</P>
<P>从长远来看，EJB3和JDO2的政治斗争对双方都有好处，长期分裂带来的后果对双方的发展都不利，然而从短期来看，JDO2确实是在这场政治斗争中败下阵来。最直接的体现就是，已经有一些JDO的用户对JDO的前景产生了动摇和迷茫，不少的JDO爱好者更是直言JDO将死。</P>
<P>TopLink是一个老牌的O/R Mapping软件了，自从被Oracle收购之后，又增加了对Oracle数据库的良好支持，和对Oracle AS EntityBean的支持。Oracle提供了TopLink的图形设计环境，可以使得设计好的TopLink域模型既可以被单独用在TopLink 中，也可以被用在EJB CMP中。因此看来TopLink也走了一条和Hibernate同样策略的路。</P>
<P>TopLink的问题在于相比Hibernate的开源和免费的优势来说，TopLink既不开源，售价又不菲上。本来商业软件TopLink应该在技术支持和商业宣传策略上拥有足够的优势，然而Oracle公司毕竟是一个以数据库为核心产品的公司，其他的一切产品都是为了数据库销售业绩而服务的。在Oracle产品线中处于一个从属地位的TopLink，由于先天不足，只能眼睁睁看着Hibernate的日益壮大而无所作为，因此 TopLink更多的被局限在购买了Oracle数据库，并且绑定Oracle数据库的用户群体中。</P>
<P>J2EE1.5的新持久层规范将毫无悬念的成为未来持久层框架的主流API，无论是Hibernate，JDO，还是TopLink终将兼容这个主流商业API。在当前的这三种持久层API当中，Hibernate无疑是最有前途的。这是因为：</P>
<P>1、新的持久层规范将基于EJB3.0 EntityBean规范，这意味着仍将以Hibernate的设计理念为基础<BR>2、JBoss对EJB3.0规范跟随的步伐非常紧密，在规范制定过程中就不断的发布参考实现产品，因此可以对对EJB3.0规范产生比较大的影响力。</P>
<P>综上所述，我们有理由对Hibernate的前途抱有强烈的信心。</P>
<P>最后的一个疑问是，既然J2EE1.5的新持久层框架可以脱离J2EE容器运行，那么大家不全部都去用Hibernate的后一套兼容API，而完全放弃Hibernate的原生API了吗？那么是否意味着Hibernate做为一个独立产品的使命彻底终结呢？</P>
<P>对于这个问题我的看法是：J2EE1.5的持久层规范要综合各个EJB Vendor，JDO Vendor的意见，要平衡他们之间的利益得失，那么这样一个瞻前顾后的规范必然无法覆盖所有应用场合的全面需要，这不像Hibernate的原生API 可以随时根据开发人员的要求增加功能那么灵活。因此我预计Hibernate的原生API以其更加强大的功能仍然会吸引一大批人直接使用原生API，而不是兼容J2EE规范的API。</P>
<P>总而言之，对于我们当前的持久层开发来说，最好的办法莫过于坚定的使用DAO层来隔离持久层和业务层逻辑，那么不管未来持久层风云如何变换，但凡基于POJO的持久层框架都可以被我们拿来任意替换</P><img src ="http://www.blogjava.net/zhangxv/aggbug/33167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangxv/" target="_blank">怀素</a> 2006-03-02 12:02 <a href="http://www.blogjava.net/zhangxv/archive/2006/03/02/33167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java改变了什么</title><link>http://www.blogjava.net/zhangxv/archive/2006/03/02/33165.html</link><dc:creator>怀素</dc:creator><author>怀素</author><pubDate>Thu, 02 Mar 2006 04:01:00 GMT</pubDate><guid>http://www.blogjava.net/zhangxv/archive/2006/03/02/33165.html</guid><description><![CDATA[<DIV class=postbody>计世网消息 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT face=Verdana>从某种意义上讲，Java是SUN的救世主，与.NET是不离不弃的双子星。</FONT><FONT face=Verdana> 
<P><BR><STRONG>Java改变了什么</STRONG></P>
<P>&amp;nbs 
<TABLE style="MARGIN: 10px 7px 3px 4px" cellSpacing=0 cellPadding=0 align=left border=0>
<TBODY>
<TR>
<TD>
<SCRIPT language=JavaScript1.1 src="http://ad.ccw.com.cn/adshow.asp?positionID=39&amp;js=1&amp;innerJs=1"></SCRIPT>
</TD></TR></TBODY></TABLE>p;&nbsp;&nbsp; 十年前，几乎没有人想到，几个技术人员研发的一个“小语言”，会发展成如今的一个“生态圈”，这就是Java。</P>
<P><BR><STRONG>Java让互联网动了起来</STRONG></P>
<P><BR>&nbsp; “计算机语言的发展历史也是人们不断追求更高的模块化、抽象化和封装化的历史。近十年期间，很多编程语言，从出现到没落经过了一波又一波。像1970年代出现的Pascal，如今用的人已经不多了。”一位资深程序员告诉记者，“‘算法+数据结构=程序’几乎成为软件开发的惟一准则，结构化程序设计方法从计算机发展角度来看是自然而然的，但今天从抽象的角度来看，这种方法几乎可以说是一个‘时代错误’。实际上，软件开发的主要目的就是描述和反映现实世界，结构化程序设计方法并不符合这个思维方式。”<BR>&nbsp;&nbsp; 因此，抽象的过程应该是以现实世界的对象为中心的，于是面向对象的抽象方法就走到了前台，出现了Visual Basic、Delphi、C++以及Java等面向对象的编程语言，而互联网的勃兴，则给Java的成长带来了肥沃的土壤。<BR>&nbsp;&nbsp; “Java诞生时并没有引起太多人的注意，它第一次让人们觉得惊艳是在一次网站演示上，但当时人们对Java还抱有很大的争议。”被誉为“Java之父”的SUN公司副总裁、软件部首席技术官James Gosling回忆起十几年前的情景不无感慨地说，“但Java的出现为当时的互联网增添了生机，它让那些静态的页面动了起来。”<BR>&nbsp;&nbsp; 而且，因为Java具有“只写一次，随处运行”的特点，从而引起了更多开发者的兴趣。<BR>“我们可以不必再做重复性质的劳动了。”中国科学院软件研究所宋靖宇博士说，“此前，为了能够使程序在不同型号的硬件平台上运行，开发人员必须耗费大量的时间来一遍又一遍的编写代码，然而Java改变了这样的局面，只写一次就可以。”<BR>由于看到Java在互联网时代的巨大作用，清华大学计算机系教授王克宏从1995年就开始跟踪Java的发展。<BR>&nbsp;&nbsp;&nbsp; Java语言的优势似乎是与生俱来的，然而，仅有语言是不够的。</P>
<P><BR><STRONG>免费的Java创造了应用奇迹</STRONG></P>
<P><BR>&nbsp;&nbsp; “为了提高软件开发效率，任何编程语言都离不开相应的开发工具和程序库。”王克宏说。于是，SUN公司在1996年的1月23 日发布了JDK1.0，其中包括两个部分：运行环境和开发工具，运行环境包括五大部分：核心API、集成API、用户界面API、发布技术和Java虚拟机。<BR>随着各种功能的完善与提炼，各种Java开发工具以及开发环境的丰富，Java不再是一种语言的代名词，它变成了一种开发平台。人们常常听到的J2EE（企业版）、J2ME（微型版）、J2SE（标准版）就是Java的三大核心平台。利用这三种不同的平台，人们可以来做不同行业的应用。<BR>SUN公司大中华区总裁余宏德说：“Java经过十年的发展，已经得到了全球的公认，可以说，当今的电子时代是‘Java无处不在’，正是基于它一开始的技术公开性，Java已经变成全球最富有活力的技术社区之一。”<BR>&nbsp;&nbsp; 尽管，Java目前已经风靡全世界，但Java 到底给整个产业带来什么，除了Java程序员外，似乎没有人能具体感觉到。<BR>&nbsp;&nbsp; SUN中国区市场经理马君海比喻说：“电灯的发明，使得有了现在庞大的电力产业；电话的发明，使得有了当今兴旺的电信产业；而Java的发明，则给软件产业带来了前所未有的改变。”<BR>像一切新兴事物一样，Java的发展并不那么顺利，其坎坷起步的经历，可以从SUN首席执行官Scott McNealy在SUN的Java One大会上的一句话得知一二：“七八年前的Java One演说现在听起来真是寒碜，我们那时实在是太小看它了，我们根本不知道这项技术将会改变什么。”而且，由于开始就是基于开源的态度，当时很多人怀疑它是否能赚钱。<BR>&nbsp;&nbsp; 然而，今天的Java已经得到广泛应用。<BR>&nbsp;&nbsp; 据全球市场调查分析显示：已经有25亿部电子设备采用了Java技术，Java智能卡发行量已经达到10亿张，采用Java技术的手机达7亿多部，7亿台PC中应用了Java技术，140家电信运营商支持Java 技术，全球有超过450 万个Java开发人员，JCP（Java社区项目）已经有912家会员企业。</P>
<P><BR><STRONG>如果没有Java，SUN将会怎样</STRONG></P>
<P><BR>&nbsp;&nbsp; 从1997年4月6日美国旧金山的第二届Java One大会，到今年的Java十周年盛事，本报目睹了Java 十年的风风雨雨，眼瞅着这个以“咖啡”命名的小小编程语言变成了一个平台，一个社团，一个生态系统。Java不仅发展了自己，也同时改变了它的缔造者。Java对SUN的改变是间接的、渐进式的，有时候甚至不为外人所道也。<BR>&nbsp;&nbsp; 与平台无关的Java旨在与“锁定用户的”Windows相抗衡，给人们更多的选择，但推动Java研发的却是家硬件公司――硬件公司与微软抗个什么衡？也许有人会拿IBM做类比――IBM也大量涉足软件。问题在于，IBM涉足软件的结果是把自己变成了一个软件和服务公司，而SUN的主业依然是服务器。表面上看，“纯软”的Java并没有给“偏硬”的SUN带来直接效益，反而树了个强大的敌人，这就是并不“软”的微软。<BR>&nbsp;&nbsp; 同时，尽管SUN对Java的投资巨大，却从没说过它从Java中获得过多少回报。因为使用Java程序和开发工具包是免费的，这让那些利用Java做第三方开发的ISV们赚了个钵满盆满，可是SUN得到了什么？当然，Java作为高级编程语言，它的注册和维护也能给SUN带来一定收入，但这是一个小头，有人比喻说：“SUN成了Java的管家，而不是主人。”<BR>&nbsp;&nbsp; SUN大中华区市场总监李永起近日为记者揭开了Java与SUN的秘密：“如果SUN只是一个做服务器的公司，人们就不会对我们太感兴趣，但有了Java，就大不一样了，人们会跑过来与我们讨论Java，人们会说：‘哦，能研发出Java这么棒的编程语言的公司一定不同凡响！’况且，服务器的销售从来就不是孤立的，它体现为一个系统，Java在硬件销售中发挥了关键作用。”SUN用&nbsp; Java来定位Web服务，发挥其多平台对话的特长，营造Web服务环境。<BR>&nbsp;&nbsp;&nbsp; Internet让Java复活，Java则拯救了曾经陷入“偏硬”困境中的SUN。<BR>&nbsp;&nbsp; SUN董事长麦克尼里认为：Java带来的益处从根本上讲是间接的。“但是，”他说，“想像一下，如果10年前SUN没有做Java，今天SUN将会在哪里？如果人们不写Java Web服务，他们会写.Net的程序，如果他们写.Net的程序，他们就不会为SUN的设备写程序。”</P>
<P><BR><STRONG>.NET不折不扣的对手</STRONG></P>
<P><BR>&nbsp;&nbsp; 近年来，国内一批软件公司都采用Java技术开发了一批软件平台和产品，这两年Java在国内得到了迅速发展。不过，尽管看起来Java的队伍似乎很强大，但国内Java人才相对而言还是少得可怜。<BR>&nbsp;&nbsp; “SUN在新加坡建立了Java高级培训中心，目前新加坡有5万名Java 人才，而新加坡全国只有380万人，即全国1.3%的是Java人才，如果按此比例，中国应有1700万名Java人才，而现在估计仅10到15万人。”王克宏教授在相关的报告中写道，“造成国内Java应用不多的原因是多方面的。”<BR>&nbsp;&nbsp; “这两年SUN才开始在中国举办各种活动，而许多媒体对Java的不关注也是其中一个原因。”王克宏说。<BR>&nbsp; “其实，鉴于Java出来时总给人阳春白雪的面孔，使得国内的许多编程者在熟悉了微软的开发平台后，很难转换过来是其中的一大部分原因。”宋靖宇博士说，“你不得不承认微软在开发工具上的人性化以及可视化设计是高超的。”<BR>&nbsp;&nbsp; “在讨论 Java 的时候我们很容易将 Java 语言和 Java 平台混为一谈，与.NET 平台比较的过程中，也更多的是将Java平台和C#比较，或者将Java语言和.NET 平台做比较，在我个人的意识中，这是不够公正的。”上海大学博士刘锬对记者说，“Java既是一种语言，也是一种平台。”<BR>&nbsp;&nbsp; 说到微软的.NET，它从提出的开始就是立足平台，相对于 Java 提倡的“一次编写，到处运行”，.NET则提倡“一个平台，多种语言”，因为平台的统一性，因此在各个程序语言的兼容性和混合开发方面做得比Java 好，也因此有些微软的“粉丝”嘲笑Java是“一次编写，到处调试”。<BR>&nbsp;&nbsp; “微软的C#是集合了C以及C++甚至Java的许多优点的结晶，在Windows平台上，似乎C#在运行速度上更胜一筹。”刘锬介绍说，“在任何一个平台上，我们直接交流的是实现Java语言运行的虚拟机，我们希望Java在虚拟机以及它的开发平台的研发上变得更易用、更人性化。”<BR>“有对手总是一件不算坏的事情，这个世界不需要‘独孤求败’，商业规则也不允许‘独孤求败’的出现，因为那样会打破竞争格局的平衡，而Java和.NET这两个平台的纷争才刚刚开始。较量，有利于整个软件世界。SUN公司在商业模式的运作上甚至可以跟微软学习。”一网友这样说。</FONT></P></DIV><img src ="http://www.blogjava.net/zhangxv/aggbug/33165.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangxv/" target="_blank">怀素</a> 2006-03-02 12:01 <a href="http://www.blogjava.net/zhangxv/archive/2006/03/02/33165.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Borland沟通.Net与Java </title><link>http://www.blogjava.net/zhangxv/archive/2006/03/02/33163.html</link><dc:creator>怀素</dc:creator><author>怀素</author><pubDate>Thu, 02 Mar 2006 03:56:00 GMT</pubDate><guid>http://www.blogjava.net/zhangxv/archive/2006/03/02/33163.html</guid><description><![CDATA[<BR><SPAN id=Edit_dgrItems__ctl3_Label2 NAME="Label1">Borland软件公司推出了具有互操作性平台的最新版本，该产品用于连接在微软.Net 框架上建立的软件和基于Java 2 Enterprise及CORBA技术的应用程序。 名为Janeva 6的新平台支持所有主要的Java 2应用服务器，提供事务处理和安全性服务，如用户授权和身份验证。Java和CORBA应用程序可以利用该平台新的回叫功能，实现与基于.Net应用程序的双向互操作。微软的.Net 框架使用新兴的Web服务技术与其他平台上的应用程序通信。不过，Borland认为Web服务标准还不能提供企业级的可互操作性。 Borland负责软件产品的高级副总裁Boz Elloy说：“客户在Web服务上面临的最大难题之一是在高交易量环境中实施的复杂性,对那些需要更高服务质量——数据安全性、高性能、可靠性、容错性和可扩展性——的项目来说，Janeva以更低的总体拥有成本提供了一种很有吸引力的替代性方案。” </SPAN><img src ="http://www.blogjava.net/zhangxv/aggbug/33163.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangxv/" target="_blank">怀素</a> 2006-03-02 11:56 <a href="http://www.blogjava.net/zhangxv/archive/2006/03/02/33163.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>满江红－专业书架 </title><link>http://www.blogjava.net/zhangxv/archive/2006/03/02/33162.html</link><dc:creator>怀素</dc:creator><author>怀素</author><pubDate>Thu, 02 Mar 2006 03:54:00 GMT</pubDate><guid>http://www.blogjava.net/zhangxv/archive/2006/03/02/33162.html</guid><description><![CDATA[<BR><SPAN id=Edit_dgrItems__ctl5_Label2 NAME="Label1">《.NET与设计模式》作者：甄镭 定价：68.00 页码：496 开本：16开 出版时间：2005-06-01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 《软件架构师教程》作者：Raphael Malveau，Thomas J. Mow 译者：申峻嵘 等定价：38.00　页码：310　开本：16开　出版时间：2003-12-01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 《Java编程思想（第2版）》 【作者】 （美）Bruce Eckel 【译者】 侯捷 【丛书名】 计算机科学丛书 【出版社】 机械工业出版社 【书号】 7-111-10441-2 【开本】 16开 【页码】 84 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 《Expert One-on-One J2EE Development without EJB中文版》 【原书名】 Expert One-on-One J2EE Development without EJB [原书信息] 【原出版社】 Wrox 【作者】 （美）Rod Johnson,Juergen Hoeller 【译者】 JavaEye 【出版社】 电子工业出版社 【书号】 7-121-01684-2 【开本】 16开 【页码】 552 【出版日期】 2005-8-1 【版次】 1-1 </SPAN><img src ="http://www.blogjava.net/zhangxv/aggbug/33162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangxv/" target="_blank">怀素</a> 2006-03-02 11:54 <a href="http://www.blogjava.net/zhangxv/archive/2006/03/02/33162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>