<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://smileforever02.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fsmileforever02.spaces.live.com%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>勇的共享空间</title><description /><link>http://smileforever02.spaces.live.com/</link><language>en-US</language><pubDate>Tue, 15 Jul 2008 12:24:49 GMT</pubDate><lastBuildDate>Tue, 15 Jul 2008 12:24:49 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><live:identity><live:id>-1360044842784743927</live:id><live:alias>smileforever02</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>家庭妇男</title><link>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!139.entry</link><description>&lt;div&gt;不知不觉间，居然学会了做菜，&lt;/div&gt;
&lt;div&gt;小到炒青菜，大到红烧肉，都能做的像模像样的。&lt;/div&gt;
&lt;div&gt;每天下班回家，菜场买点小菜，回来炒炒烧烧，&lt;/div&gt;
&lt;div&gt;然后跟阿草两个人共进晚餐，没有灯红酒绿，却也有滋有味。&lt;/div&gt;
&lt;div&gt;我做饭烧菜，他洗碗抹锅，分工甚是明确。&lt;/div&gt;
&lt;div&gt;so delicious! 比食堂的菜好吃多了！&lt;/div&gt;
&lt;div&gt;一点一滴，学会生活。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1360044842784743927&amp;page=RSS%3a+%e5%ae%b6%e5%ba%ad%e5%a6%87%e7%94%b7&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=smileforever02.spaces.live.com&amp;amp;GT1=smileforever02"&gt;</description><comments>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!139.entry#comment</comments><guid isPermaLink="true">http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!139.entry</guid><pubDate>Wed, 18 Jul 2007 12:19:56 GMT</pubDate><slash:comments>4</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://smileforever02.spaces.live.com/blog/cns!ED20266BDB369E09!139/comments/feed.rss</wfw:commentRss><wfw:comment>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!139.entry#comment</wfw:comment><dcterms:modified>2007-07-18T12:19:56Z</dcterms:modified></item><item><title>the first day onboard</title><link>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!133.entry</link><description>&lt;div&gt;上班第一天，很早就醒了，我是个喜欢睡懒觉的人，但如果第二天有事情的话我就会醒的很早。&lt;/div&gt;
&lt;div&gt;抬头看了看窗外，没有阳光，阴阴的天，幸好没有下雨，不然我只能冒雨去上班了。&lt;/div&gt;
&lt;div&gt;住的地方离公司很近，不到10分钟的行程，虽然房租要更多的银子，但我还是更喜欢方便和舒适。&lt;/div&gt;
&lt;div&gt;走在上班的路上，我一路四处张望，看看四处的景色，这就是我以后每天至少要走两次的路啊。&lt;/div&gt;
&lt;div&gt;张江这里没有市区的繁华喧闹，但环境绿化很不错，街道都很宽，喜欢这里的空气清新，这里的宁静。&lt;/div&gt;
&lt;div&gt;踏入公司大门的那一刻，意识到自己再也不是靠父母的毛孩了，得担负起生活得责任。&lt;/div&gt;
&lt;div&gt;领了一台全新的pc，cpu3.0， 1G内存，140G硬盘，工欲善其事，必先利其器。&lt;/div&gt;
&lt;div&gt;公司大都是年轻男人，也有mm，不是大美女型的但都有气质的说。&lt;/div&gt;
&lt;div&gt;IBM的工作氛围给人感觉还是挺easy的，各做各的事，但不会死一样的寂静，那样会让人感觉压抑；&lt;/div&gt;
&lt;div&gt;相互交流的人也不少，但不会影响到别人，有什么问题可以请教旁边的同事，他们都会很热心的帮助你。&lt;/div&gt;
&lt;div&gt;第一天没太多的事干，主要是熟悉熟悉环境，装装软件。&lt;/div&gt;
&lt;div&gt;6点下班，一个人走在冷冷的街，会想起以前的人和事，幸福的悲伤的，希望爱我的和我爱的人能够过得开心一些。&lt;/div&gt;
&lt;div&gt;告别以前的浮躁浅薄无知，学会成熟。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1360044842784743927&amp;page=RSS%3a+the+first+day+onboard&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=smileforever02.spaces.live.com&amp;amp;GT1=smileforever02"&gt;</description><comments>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!133.entry#comment</comments><guid isPermaLink="true">http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!133.entry</guid><pubDate>Mon, 11 Jun 2007 15:57:15 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://smileforever02.spaces.live.com/blog/cns!ED20266BDB369E09!133/comments/feed.rss</wfw:commentRss><wfw:comment>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!133.entry#comment</wfw:comment><dcterms:modified>2007-07-20T03:57:23Z</dcterms:modified></item><item><title>Struts,Spring,Hibernate优缺点</title><link>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!128.entry</link><description>&lt;div&gt;
&lt;h1&gt;&lt;a href="http://www.blogjava.net/xixidabao/archive/2007/04/14/110605.html"&gt;&lt;u&gt;&lt;font color="#800080"&gt;Struts,Spring,Hibernate优缺点 &lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;div&gt;
&lt;div&gt;1.struts&lt;br&gt;&lt;br&gt;struts框架具有组件的模块化，灵活性和重用性的优点，同时简化了基于MVC的web应用程序的开发。&lt;br&gt;&lt;br&gt;优点：&lt;br&gt;Struts跟Tomcat、Turbine等诸多Apache项目一样，是开源软件，这是它的一大优点。使开发者能更深入的了解其内部实现机制。&lt;br&gt;除此之外，Struts的优点主要集中体现在两个方面：Taglib和页面导航。Taglib是Struts的标记库，灵活动用，能大大提高开发效率。另外，就目前国内的JSP开发者而言，除了使用JSP自带的常用标记外，很少开发自己的标记，或许Struts是一个很好的起点。&lt;br&gt;关于页面导航，我认为那将是今后的一个发展方向，事实上，这样做，使系统的脉络更加清晰。通过一个配置文件，即可把握整个系统各部分之间的联系，这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时，这种优势体现得更加明显。&lt;br&gt;&lt;br&gt;&lt;br&gt;另外，struts是业界&amp;quot;标准&amp;quot;（很多成功案例），学习资源丰富，HTML标签非常优秀&lt;br&gt;&lt;br&gt;缺点：&lt;br&gt;Taglib是Struts的一大优势，但对于初学者而言，却需要一个持续学习的过程，甚至还会打乱你网页编写的习惯，但是，当你习惯了它时，你会觉得它真的很棒。&lt;br&gt;Struts将MVC的Controller一分为三，在获得结构更加清晰的同时，也增加了系统的复杂度。&lt;br&gt;ActionForms使用不便、无法进行单元测试（StrutsTestCase只能用于集成）&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;【IT168技术文档&lt;/strong&gt;】 &lt;br&gt;    Struts跟Tomcat、Turbine等诸多Apache项目一样，是开源软件，这是它的一大优点。使开发者能更深入的了解其内部实现机制。 Struts开放源码框架的创建是为了使开发者在构建基于Java Servlet和JavaServer Pages（JSP）技术的Web应用时更加容易。Struts框架为开放者提供了一个统一的标准框架，通过使用Struts作为基础，开发者能够更专注于应用程序的商业逻辑。Struts框架本身是使用Java Servlet和JavaServer Pages技术的一种Model-View-Controller（MVC）实现. &lt;br&gt;具体来讲,Struts的优点有: &lt;br&gt;&lt;br&gt;    1. 实现MVC模式，结构清晰,使开发者只关注业务逻辑的实现. &lt;br&gt;&lt;br&gt;    2. 有丰富的tag可以用 ,Struts的标记库(Taglib)，如能灵活动用，则能大大提高开发效率。另外，就目前国内的JSP开发者而言，除了使用JSP自带的常用标记外，很少开发自己的标记，或许Struts是一个很好的起点。 &lt;br&gt;&lt;br&gt;    3. 页面导航.页面导航将是今后的一个发展方向，事实上，这样做，使系统的脉络更加清晰。通过一个配置文件，即可把握整个系统各部分之间的联系，这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时，这种优势体现得更加明显。 &lt;br&gt;&lt;br&gt;    4. 提供Exception处理机制 . &lt;br&gt;&lt;br&gt;    5. 数据库链接池管理 &lt;br&gt;&lt;br&gt;    6. 支持I18N &lt;br&gt;&lt;br&gt;    缺点: &lt;br&gt;    一、 转到展示层时，需要配置forward，每一次转到展示层，相信大多数都是直接转到jsp，而涉及到转向，需要配置forward，如果有十个展示层的jsp，需要配置十次struts，而且还不包括有时候目录、文件变更，需要重新修改forward，注意，每次修改配置之后，要求重新部署整个项目，而tomcate这样的服务器，还必须重新启动服务器，如果业务变更复杂频繁的系统，这样的操作简单不可想象。现在就是这样，几十上百个人同时在线使用我们的系统，大家可以想象一下，我的烦恼有多大。&lt;br&gt; &lt;br&gt;    二、 Struts 的Action必需是thread－safe方式，它仅仅允许一个实例去处理所有的请求。所以action用到的所有的资源都必需统一同步，这个就引起了线程安全的问题。 &lt;br&gt;&lt;br&gt;    三、 测试不方便. Struts的每个Action都同Web层耦合在一起，这样它的测试依赖于Web容器，单元测试也很难实现。不过有一个Junit的扩展工具Struts TestCase可以实现它的单元测试。 &lt;br&gt;&lt;br&gt;    四、 类型的转换. Struts的FormBean把所有的数据都作为String类型，它可以使用工具Commons-Beanutils进行类型转化。但它的转化都是在Class级别，而且转化的类型是不可配置的。类型转化时的错误信息返回给用户也是非常困难的。 &lt;br&gt;&lt;br&gt;    五、 对Servlet的依赖性过强. Struts处理Action时必需要依赖ServletRequest 和ServletResponse，所有它摆脱不了Servlet容器。 &lt;br&gt;&lt;br&gt;    六、 前端表达式语言方面.Struts集成了JSTL，所以它主要使用JSTL的表达式语言来获取数据。可是JSTL的表达式语言在Collection和索引属性方面处理显得很弱。 &lt;br&gt;&lt;br&gt;    七、 对Action执行的控制困难. Struts创建一个Action，如果想控制它的执行顺序将会非常困难。甚至你要重新去写Servlet来实现你的这个功能需求。 &lt;br&gt;&lt;br&gt;    八、 对Action 执行前和后的处理. Struts处理Action的时候是基于class的hierarchies，很难在action处理前和后进行操作。 &lt;br&gt;&lt;br&gt;    九、 对事件支持不够. 在struts中，实际是一个表单Form对应一个Action类(或DispatchAction)，换一句话说：在Struts中实际是一个表单只能对应一个事件，struts这种事件方式称为application event，application event和component event相比是一种粗粒度的事件。 &lt;br&gt;    &lt;br&gt;    Struts重要的表单对象ActionForm是一种对象，它代表了一种应用，这个对象中至少包含几个字段，这些字段是Jsp页面表单中的input字段，因为一个表单对应一个事件，所以，当我们需要将事件粒度细化到表单中这些字段时，也就是说，一个字段对应一个事件时，单纯使用Struts就不太可能，当然通过结合JavaScript也是可以转弯实现的。&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;2．Hibernate&lt;br&gt;Hibernate是一个开放源代码的对象关系映射框架，它对JDBC进行了非常轻量级的对象封装，使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。&lt;br&gt;Hibernate可以应用在任何使用JDBC的场合，既可以在Java的客户端程序实用，也可以在Servlet/JSP的Web应用中使用，最具革命意义的是，Hibernate可以在应用EJB的J2EE架构中取代CMP，完成数据持久化的重任。&lt;br&gt;大多数开发机构经常采取创建各自独立的数据持久层。一旦底层的数据结构发生改变，那么修改应用的其余部分使之适应这种改变的代价将是十分巨大的。Hibernate适时的填补了这一空白，它为Java应用提供了一个易用的、高效率的对象关系映射框架。hibernate是个轻量级的持久性框架，功能却非常丰富。&lt;br&gt;&lt;br&gt;优点：&lt;br&gt;a.??????? Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性。&lt;br&gt;b.??????? ?Hibernate 的性能非常好，因为它是个轻量级框架。 映射的灵活性很出色。&lt;br&gt;c.??????? 它支持各种关系数据库，从一对一到多对多的各种复杂关系。 &lt;br&gt;&lt;br&gt;&lt;br&gt;缺点：它限制您所使用的对象模型。(例如，一个持久性类不能映射到多个表)其独有的界面和可怜的市场份额也让人不安，尽管如此，Hibernate 还是以其强大的发展动力减轻了这些风险。其他的开源持久性框架也有一些，不过都没有 Hibernate 这样有市场冲击力。&lt;br&gt;&lt;br&gt;&lt;span&gt;上面回贴情绪有点激动，希望谅解，我不是因为有人批评Hibernate而感到不快，而是因为帖子里面的观点实在让我觉得荒谬。不管觉得Hibernate好也吧，不好也吧，我唯一觉得遗憾的是，在中文论坛里面找不到一个对Hibernate的真正高水平的评价。在TSS上有一个关于Hibernate的hot thread，跟了几百贴，其中包括Hibernate作者Gavin和LiDO JDO的CTO，对于JDO和Hibernate有过一些激烈的争论，我曾经耐心的看了一遍，仍然没有发现针对Hibernate真正有力的攻击，那些所谓的攻击无非针对Hibernate没有一个GUI的配置工具，没有商业公司支持，没有标准化等等这些站不住脚的理由。&lt;br&gt;&lt;br&gt;补充几点我的意见：&lt;br&gt;&lt;br&gt;一、Hibernate是JDBC的轻量级的对象封装，它是一个独立的对象持久层框架，和App Server，和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合，例如Java应用程序的数据库访问代码，DAO接口的实现类，甚至可以是BMP里面的访问数据库的代码。从这个意义上来说，Hibernate和EB不是一个范畴的东西，也不存在非此即彼的关系。&lt;br&gt;&lt;br&gt;二、Hibernate是一个和JDBC密切关联的框架，所以Hibernate的兼容性和JDBC驱动，和数据库都有一定的关系，但是和使用它的Java程序，和App Server没有任何关系，也不存在兼容性问题。&lt;br&gt;&lt;br&gt;三、Hibernate不能用来直接和Entity Bean做对比，只有放在整个J2EE项目的框架中才能比较。并且即使是放在软件整体框架中来看，Hibernate也是做为JDBC的替代者出现的，而不是Entity Bean的替代者出现的，让我再列一次我已经列n次的框架结构：&lt;br&gt;&lt;br&gt;传统的架构：&lt;br&gt;1) Session Bean &amp;lt;-&amp;gt; Entity Bean &amp;lt;-&amp;gt; DB&lt;br&gt;为了解决性能障碍的替代架构：&lt;br&gt;2) Session Bean &amp;lt;-&amp;gt; DAO &amp;lt;-&amp;gt; JDBC &amp;lt;-&amp;gt; DB&lt;br&gt;使用Hibernate来提高上面架构的开发效率的架构：&lt;br&gt;3) Session Bean &amp;lt;-&amp;gt; DAO &amp;lt;-&amp;gt; Hibernate &amp;lt;-&amp;gt; DB &lt;br&gt;&lt;br&gt;就上面3个架构来分析：&lt;br&gt;1、内存消耗：采用JDBC的架构2无疑是最省内存的，Hibernate的架构3次之，EB的架构1最差。&lt;br&gt;&lt;br&gt;2、运行效率：如果JDBC的代码写的非常优化，那么JDBC架构运行效率最高，但是实际项目中，这一点几乎做不到，这需要程序员非常精通JDBC，运用Batch语句，调整PreapredStatement的Batch Size和Fetch Size等参数，以及在必要的情况下采用结果集cache等等。而一般情况下程序员是做不到这一点的。因此Hibernate架构表现出最快的运行效率。EB的架构效率会差的很远。&lt;br&gt;&lt;br&gt;3、开发效率：在有JBuilder的支持下以及简单的项目，EB架构开发效率最高，JDBC次之，Hibernate最差。但是在大的项目，特别是持久层关系映射很复杂的情况下，Hibernate效率高的惊人，JDBC次之，而EB架构很可能会失败。&lt;br&gt;&lt;br&gt;4、分布式，安全检查，集群，负载均衡的支持&lt;br&gt;由于有SB做为Facade，3个架构没有区别。&lt;br&gt;&lt;br&gt;四、EB和Hibernate学习难度在哪里？&lt;br&gt;&lt;br&gt;EB的难度在哪里？不在复杂的XML配置文件上，而在于EB运用稍微不慎，就有严重的性能障碍。所以难在你需要学习很多EJB设计模式来避开性能问题，需要学习App Server和EB的配置来优化EB的运行效率。做EB的开发工作，程序员的大部分精力都被放到了EB的性能问题上了，反而没有更多的精力关注本身就主要投入精力去考虑的对象持久层的设计上来。&lt;br&gt;&lt;br&gt;Hibernate难在哪里？不在Hibernate本身的复杂，实际上Hibernate非常的简单，难在Hibernate太灵活了。&lt;br&gt;&lt;br&gt;当你用EB来实现持久层的时候，你会发现EB实在是太笨拙了，笨拙到你根本没有什么可以选择的余地，所以你根本就不用花费精力去设计方案，去平衡方案的好坏，去费脑筋考虑选择哪个方案，因为只有唯一的方案摆在你面前，你只能这么做，没得选择。&lt;br&gt;&lt;br&gt;Hibernate相反，它太灵活了，相同的问题，你至少可以设计出十几种方案来解决，所以特别的犯难，究竟用这个，还是用那个呢？这些方案之间到底有什么区别呢？他们的运行原理有什么不同？运行效率哪个比较好？光是主键生成，就有七八种方案供你选择，你为难不为难？集合属性可以用Set，可以用List，还可以用Bag，到底哪个效率高，你为难不为难？查询可以用iterator，可以用list，哪个好，有什么区别？你为难不为难？复合主键你可以直接在hbm里面配置，也可以自定义CustomerType，哪种比较好些？你为难不为难？对于一个表，你可以选择单一映射一个对象，也可以映射成父子对象，还可以映射成两个1:1的对象，在什么情况下用哪种方案比较好，你为难不为难？&lt;br&gt;&lt;br&gt;这个列表可以一直开列下去，直到你不想再看下去为止。当你面前摆着无数的眼花缭乱的方案的时候，你会觉得幸福呢？还是悲哀呢？如果你是一个负责的程序员，那么你一定会仔细研究每种方案的区别，每种方案的效率，每种方案的适用场合，你会觉得你已经陷入进去拔不出来了。如果是用EB，你第一秒种就已经做出了决定，根本没得选择，比如说集合属性，你只能用Collection，如果是Hibernate，你会在Bag，List和Set之间来回犹豫不决，甚至搞不清楚的话，程序都没有办法写。&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;3． Spring&lt;br&gt;它是一个开源的项目，而且目前非常活跃；它基于IoC（Inversion of Control，反向控制）和AOP的构架多层j2ee系统的框架，但它不强迫你必须在每一层 中必须使用Spring，因为它模块化的很好，允许你根据自己的需要选择使用它的某一个模块；它实现了很优雅的MVC，对不同的数据访问技术提供了统一的 接口，采用IoC使得可以很容易的实现bean的装配，提供了简洁的AOP并据此实现Transcation Managment，等等&lt;br&gt;优点 &lt;br&gt;? ?a. Spring能有效地组织你的中间层对象，不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的 API特制的framework，Spring致力于解决剩下的问题。 &lt;br&gt;? ?b. Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验，这是一个很大的问题，它降低了系统的可测试性和面向对象的程度。 &lt;br&gt;? ?c. 通过一种在不同应用程序和项目间一致的方法来处理配置文件，Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类要寻找的是哪个魔法般的属性项或系统属性感到不解，为此不得不去读Javadoc甚至源编码？有了Spring，你仅仅需要看看类的JavaBean属性。Inversion of Control的使用（在下面讨论）帮助完成了这种简化。 &lt;br&gt;??d.? 通过把对接口编程而不是对类编程的代价几乎减少到没有，Spring能够促进养成好的编程习惯。 &lt;br&gt;??e. Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。 &lt;br&gt;??f. 使用Spring构建的应用程序易于单元测试。 &lt;br&gt;??g.? Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口，却不会影响调用代码。 &lt;br&gt;??h. Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物，它们适用于许多web应用。例如，Spring能使用AOP提供声明性事务管理而不通过EJB容器，如果你仅仅需要与单个数据库打交道，甚至不需要一个JTA实现。 &lt;br&gt;? i. ?Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品（如Hibernate）。 &lt;br&gt;Spring确实使你能通过最简单可行的解决办法来解决你的问题。而这是有有很大价值的。&lt;br&gt;&lt;br&gt;?缺点：使用人数不多、jsp中要写很多代码、控制器过于灵活，缺少一个公用控制器 &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1360044842784743927&amp;page=RSS%3a+Struts%2cSpring%2cHibernate%e4%bc%98%e7%bc%ba%e7%82%b9&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=smileforever02.spaces.live.com&amp;amp;GT1=smileforever02"&gt;</description><category>计算机与 Internet</category><comments>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!128.entry#comment</comments><guid isPermaLink="true">http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!128.entry</guid><pubDate>Mon, 28 May 2007 14:32:37 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://smileforever02.spaces.live.com/blog/cns!ED20266BDB369E09!128/comments/feed.rss</wfw:commentRss><wfw:comment>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!128.entry#comment</wfw:comment><dcterms:modified>2007-05-28T14:32:37Z</dcterms:modified></item><item><title>清华学子七问盖茨微软创新实录</title><link>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!118.entry</link><description>&lt;div&gt;4月19日，微软公司董事长比尔·盖茨开始第二天的访华行程。盖茨上午在清华大学发表主题为《未来之路：在中国共同创新》的演讲，并接受清华大学颁发的名誉博士学位证书。
&lt;p&gt;　　清华参加活动的学生向盖茨提出了7个问题，如下：
&lt;p&gt;　　问题一：&lt;strong&gt;&lt;span&gt;盖茨先生，上午好。我来自&lt;b style="font-weight:normal;cursor:hand;color:#0000ff;text-decoration:underline"&gt;软件&lt;/b&gt;试验班，最近有关量子计算的理论和应用正在高速发展。有人认为，这将在信息技术领域引起一场新的革命。今年早些时候，在2月13日，一家加拿大公司——D-Wave System——称他们世界上首次生产出可行的商用16位量子计算机。那么，微软公司将如何应对这场可能发生的变革，并且请您谈一下您对计算机未来的一些看法。谢谢。&lt;/span&gt;&lt;/strong&gt;
&lt;p&gt;　　盖茨：和世界顶尖大学合作并且关注这些重大突破对于微软非常重要。既然量子计算理论发生了如此重大的突破，我们就要改善我们的软件使他们能在新的平台下运行。我们也有一个量子计算方面的研究项目，我很兴奋我们也是该领域的参与者之一。但是考虑到量子计算机在未来五年内成为主流的可能性非常小。关于计算机，我们还有许多重要事情要做，比如容量问题，成本问题等等。过去二十年，这方面的研究已经有了一些进展，我很乐观在这方面还会进一步发展。我们需要确定是否真的应该让我们的工程师投入到这个新的领域。有许多比我们拥有更好技术人员的大公司比如IBM、Digital Equipment、HP等并不认为这将会改变计算机的本质，这和我们的看法是一致的。我们每天都在想什么东西我们错过了，什么事情要发生。我们的工程师一直在接触和关注这些先进的事情，我们也关注着量子计算可能会做出的贡献，但这不是一朝一夕的事情。
&lt;p&gt;　　问题二：&lt;strong&gt;盖茨先生，上午好，我的问题是关于微软的研究。在很多领域有深入研究而且和大学联系如此紧密，这对于大公司非常罕见。您最初怎么想到要建立这些研究中心，它们对微软有什么影响？谢谢。&lt;/strong&gt;
&lt;p&gt;&lt;span&gt;　　盖茨：微软从大学和公司比如XEROX和AT&amp;amp;T的研究中受益菲浅。既然我们知道我们可以从中获益，我们有责任，同时这对我们也有好处，对研究事业做出我们应有的贡献。当然我们也害怕比如像AT&amp;amp;T和XEROX这样的大公司对研究投入了很多而且使人们收益但是他们没有获得应有的商业上的成功。像XEROX早期在Palo Alto Research Center做了很多图形化界面，AT&amp;amp;T做出了UNIX系统。所以我们&lt;b style="font-weight:normal;cursor:hand;color:#0000ff;text-decoration:underline"&gt;希望&lt;/b&gt;既能够像他们一样做出很有影响同时也能够快速应用到产品中的研究。我们会从这些研究中获利，Microsoft Research会雇佣那些希望改变世界，可以把软件投入生产的研究人员。每年世界各地的研究人员会到微软总部来展示他们的研究，有近一万的微软员工会来观看这些研究成果，有些时候我们甚至见到一些以前没见过的研究成果但是我们可以迅速将这些成果运用到我们的产品当中。对我们而言这是难以置信的成功。我鼓励其他公司也这样去做，但是我很失望许多大公司减少了对研究的投入。如果你想有长期的发展，就必须对研究有足够投入，微软之所以有一个很好的前景就是因为这些研究部门做的出色的工作。&lt;/span&gt;
&lt;p&gt;　　问题三：&lt;strong&gt;盖茨先生，您好，我来自法学院。我很喜欢旅行，您最近有没有去外太空的打算，如果有，您可不可以给我们提供一些细节比如选择哪个国家的太空飞船，美国的，俄罗斯还是中国的？谢谢。&lt;/strong&gt;
&lt;p&gt;　　盖茨：有一个早期在XEROX，后来对微软做出很大贡献的一个出生在匈牙利的博士现在正在太空。当然，他再过几天就会回到地球。我两天前还和他通过电子邮件，因为在太空也接入了Internet。去太空是一件很奇妙的事情，但是我不会去。
&lt;p&gt;　　问题四：&lt;strong&gt;盖茨先生，上午好。 我想您已经谈了许多关于创新的话题，但是我想提醒您的是，您是否过度强调了创新的重要性？我的意思是，windows95 98 和xp系列有很好的延续性，但office2003和office2007却有着巨大的不同。如此的差异包含着很多概念上的和实际上的创新，但许多老用户也在抱怨改变带来的不适。我想科学研究上越新越好，但对于软件而言似乎应该在创新和延续习惯上找到一个平衡点。请问您是怎么看待创新和延续的关系的？谢谢。&lt;/strong&gt;
&lt;p&gt;　　盖茨：你的问题提的很好。用户期待的并不仅仅是创新，而且有许多许多其他的东西。他们希望软件易于上手，质量很高，并且和原来的版本改变很少。举例来说，Windows的界面人们很熟悉。我们不会轻易的改变它，但是在Office上我们采取了一些冒险的方法，我们把传统的菜单模式转变成Ribbon架构。我们收到了一些负面的反馈，但是我很高兴我们的调查显示新加入的一些功能使得Office更加好用。我们经常需要思考这些改变，我们以前曾经做出过重大的决定：从MSDOS转变成Windows。当时我们刚刚做出Windows的时候也有许多人抱怨，因为当时的图形界面很慢。当时用图形界面打字没有DOS那样方便。现在我们也面临了类似的问题。比如我们转移到并行式计算的时候，我们必须决定到底是迁就开发者习惯还是让他们接受新的概念。我们有许多世界领先的研究者，还有许多其它的研究小组都在思考关于并行式计算的这个问题。在微软，每一个产品希望做一些新的改变时，我们的顾客总希望和原来的产品差不多。我们需要在这两方面达到平衡。你说的很对，我们需要权衡取舍。
&lt;p&gt;　　问题五：&lt;strong&gt;盖茨先生您好，我是学生物的，我在《科学美国人》杂志上看到一篇您写的文章说，下一个重要技术就是&lt;/strong&gt;机器人&lt;strong&gt;&lt;span&gt;技术，而且微软已经为机器人项目发布了SDK2 KIT。微软开发小组有没有在机器人和人工&lt;b style="font-weight:normal;cursor:hand;color:#0000ff;text-decoration:underline"&gt;智能&lt;/b&gt;方面有开发计划？谢谢。&lt;/span&gt;&lt;/strong&gt;
&lt;p&gt;　　盖茨：科幻小说作家已经描绘了未来的机器人的样子，但我们仍然还在一个非常初级的阶段。最先打开的市场应该是玩具机器人和医疗机器人市场，还有用于安全和制造业。只要给足够的时间，这些方面都会有很大市场。微软及早进入这些市场是非常重要的。现在世界顶尖的大学都有很多关于机器人的杰出研究工作。而我们能做的就是开发一些应用软件，使得人们不必关注机器人的具体细节。例如我们研究院开发了许多视觉软件使机器人更好的使用，而那些开发包(KIT)将会使这些工作更加容易。我们有许多智能化软件比如Reasoning Software等等。这些软件也许会成为我们在人工智能领域中取得突破的一部分，哪怕是很小的一部分。将来我们可以提供一些模块用于开发机器人系统。每年我们都会取得很大进步，硬件很好，但是我们可以让其他人来做。我们可以做一些适用于各种不同机器人的软件。我不能保证5年之内有更大的机器人市场。但是10到15年这样的时间尺度上将会有许多惊奇的事情发生，但是许多棘手的问题并不在于硬件，而是软件，那么我们希望在这些方面做出贡献。许多新的公司将会从这个领域上崛起。
&lt;p&gt;　　问题六：&lt;strong&gt;盖茨先生，上午好！我来自软件学院。许多公司都把重点放在在线服务，但微软仍然把主要精力放在新一代&lt;/strong&gt;&lt;span&gt;&lt;b style="font-weight:normal;cursor:hand;color:#0000ff;text-decoration:underline"&gt;操作系统&lt;/b&gt;&lt;/span&gt;&lt;strong&gt;Vista和Office上。我想问微软是否能从Windows和Office上继续获利？这种局面还能持续多久呢？谢谢。&lt;/strong&gt;
&lt;p&gt;　　盖茨：如果我们不在Windows和Office上做重大改变，5年之内我们将没有新的用户。要么人们都正在使用这些产品，要么就会有人做的更好。我们未来的唯一出路就是在这些产品不断的做出重大改进。拿Windows举例来说，现在Windows还没有语音识别能力，但是5年之后的操作系统一定会具有这一能力。对于平板电脑(tablet computer)来说，我们关注它的交互识别能力，这是一个巨大的优势。所以Windows应该具备那些平板电脑的标准特性。如果我们还希望取得成功，我们就关注那些人们关心的问题。我们认为语言和手写功能对于用户是非常重要的。我们有许多在线软件，但是我们也有许多用于智能设备上的软件。我们的目标就是把它们结合起来。线上软件比如Virtual Earth, Web Service Capability很先进，我们有很多竞争者，这是一件非常好的事情，这驱使我们前进。当然我们仍然需要在终端上做大量计算，比如你们所携带的手机将会具备视觉识别和语音识别功能，即使没有网络，也能做那些识别。我们需要在两端都运用智能，并且我们需要用自动的为你传送信息，你不用去考虑从手机或是电脑转移到另一台电脑，即便是在电视或者汽车上，你所关心的信息比如行程表都会跟着你走。通过制作一些在网络上运行的软件我们可以实现这些。对于我们这是一个重大的转变也是我们需要关注的重点。比如Office，既有网络服务也有本地服务。经商的部分乐趣就在于没有人可以向你保证未来怎么发展。这可不像可口可乐，这种10多年来最受欢迎的饮料，也许在20年里他还是最受欢迎的饮料，如果你喜欢那种预测的话，软件领域可不适合，因为微软不断成功的关键就在于它不断冒巨大的风险，同时面对大量的竞争，面临客户的大量需求。软件行业这种不确定性，正如这些差异很大的Windows和Office在未来几年将驱使我们不断前进。
&lt;p&gt;　　问题七：&lt;strong&gt;&lt;span&gt;上午好，盖茨先生，您听说过个人&lt;b style="font-weight:normal;cursor:hand;color:#0000ff;text-decoration:underline"&gt;知识&lt;/b&gt;管理吗？可能您知道知识管理已被大量运用于企业，而且知识管理也可以运用于软件因此我很想了解您关于知识管理领域的看法。&lt;/span&gt;&lt;/strong&gt;
&lt;p&gt;　　盖茨：知识管理软件的优点在于能够帮助人们系统管理知识信息，包括微软在内的很多软件公司已经开发出了相关的产品(如MS OFFICE)。今天的知识软件已经能够一定程度完成组织管理工作，并且扩展现有的知识。当人们输入信息的时候，我们的软件能够识别信息，并系统的建立知识库。这样，如果用户稍后进行查询，知识软件能够利用建立的知识库识别、理解用户的查询，并相应的提供查询结果。并且，我相信以后的知识管理工具将比现在的功能更加强大，我们也将以此视为微软新的一个发展契机。 &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1360044842784743927&amp;page=RSS%3a+%e6%b8%85%e5%8d%8e%e5%ad%a6%e5%ad%90%e4%b8%83%e9%97%ae%e7%9b%96%e8%8c%a8%e5%be%ae%e8%bd%af%e5%88%9b%e6%96%b0%e5%ae%9e%e5%bd%95&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=smileforever02.spaces.live.com&amp;amp;GT1=smileforever02"&gt;</description><category>计算机与 Internet</category><comments>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!118.entry#comment</comments><guid isPermaLink="true">http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!118.entry</guid><pubDate>Sun, 22 Apr 2007 13:41:52 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://smileforever02.spaces.live.com/blog/cns!ED20266BDB369E09!118/comments/feed.rss</wfw:commentRss><wfw:comment>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!118.entry#comment</wfw:comment><dcterms:modified>2007-04-22T13:41:52Z</dcterms:modified></item><item><title>思恋</title><link>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!114.entry</link><description>&lt;div&gt;一列火车的离开，留下站台上多少眼泪。。。&lt;/div&gt;
&lt;div&gt;一架航班的起飞，带走多少牵挂的心。。。。&lt;/div&gt;
&lt;div&gt;火车开走了，还会再开回来；飞机飞走了还会再飞回来。。。&lt;/div&gt;
&lt;div&gt;你走了，何时才会回来。。。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1360044842784743927&amp;page=RSS%3a+%e6%80%9d%e6%81%8b&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=smileforever02.spaces.live.com&amp;amp;GT1=smileforever02"&gt;</description><comments>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!114.entry#comment</comments><guid isPermaLink="true">http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!114.entry</guid><pubDate>Sun, 09 Jul 2006 09:29:20 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://smileforever02.spaces.live.com/blog/cns!ED20266BDB369E09!114/comments/feed.rss</wfw:commentRss><wfw:comment>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!114.entry#comment</wfw:comment><dcterms:modified>2006-07-09T09:29:20Z</dcterms:modified></item><item><title>小游戏</title><link>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!109.entry</link><description>&lt;div&gt;1，首先大家伸出两手，将中指向下弯曲，对靠在一起，就是中指的背跟背靠在一起 2，然后将其它的4个手指分别指尖对碰 3，在开始游戏的正题之前，请确保以下过程中，5个手指只允许一对手指分开。下面开始游戏的正题。 4，请张开你们那对大母指，大母指代表我们的父母，能够张开，每个人都会有生老病死，父母也会有一天离我们而去。5，请大家合上大母指，再张开食指，食指代表兄弟姐妹，他们也都会有自己的家世，也会离开我们。 6，请大家合上食指，再张开小母指，小母指代表子女，子女长大后，迟早有一天，会有自己的家庭生活，也会离开我们。 7，那么，请大家合上小母指，再试着张开无名指。这个时候，大家会惊奇的发现无名指怎么也张不开，因为无名指代表夫妻，是一辈子不分离的。真正的爱，粘在一起后，是永生永世都分不开的。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1360044842784743927&amp;page=RSS%3a+%e5%b0%8f%e6%b8%b8%e6%88%8f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=smileforever02.spaces.live.com&amp;amp;GT1=smileforever02"&gt;</description><comments>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!109.entry#comment</comments><guid isPermaLink="true">http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!109.entry</guid><pubDate>Fri, 07 Jul 2006 13:56:47 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://smileforever02.spaces.live.com/blog/cns!ED20266BDB369E09!109/comments/feed.rss</wfw:commentRss><wfw:comment>http://smileforever02.spaces.live.com/Blog/cns!ED20266BDB369E09!109.entry#comment</wfw:comment><dcterms:modified>2006-07-07T13:56:47Z</dcterms:modified></item><item><title>Photo Album: me</title><link>http://smileforever02.spaces.live.com/photos/cns!ED20266BDB369E09!112/</link><description>&lt;p&gt;me&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://smileforever02.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;ED20266BDB369E09&amp;#33;112&amp;#47;cns&amp;#33;ED20266BDB369E09&amp;#33;132"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;ED20266BDB369E09&amp;#33;132&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;#19996;&amp;#26041;&amp;#26126;&amp;#29664;&amp;#22612;&amp;#20869;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://smileforever02.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;ED20266BDB369E09&amp;#33;112&amp;#47;cns&amp;#33;ED20266BDB369E09&amp;#33;172"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;ED20266BDB369E09&amp;#33;172&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;DSC02035&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1360044842784743927&amp;page=RSS%3a+Photo+Album%3a+me&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=smileforever02.spaces.live.com&amp;amp;GT1=smileforever02"&gt;</description><guid isPermaLink="false">cns!ED20266BDB369E09!112</guid><pubDate>Thu, 31 Jan 2008 14:05:19 GMT</pubDate><msn:type>photoalbum</msn:type><live:type>photoalbum</live:type><live:typelabel>Photo album</live:typelabel><cf:itemRSS>http://smileforever02.spaces.live.com/photos/cns!ED20266BDB369E09!112/feed.rss</cf:itemRSS><dcterms:modified>2008-01-31T14:05:19Z</dcterms:modified></item></channel></rss>