﻿<?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-garnoopy</title><link>http://www.blogjava.net/garnoopy/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 21 Apr 2026 22:15:33 GMT</lastBuildDate><pubDate>Tue, 21 Apr 2026 22:15:33 GMT</pubDate><ttl>60</ttl><item><title>十二项需要关注的技术</title><link>http://www.blogjava.net/garnoopy/archive/2006/05/07/44830.html</link><dc:creator>Garnoopy's Java Cottage</dc:creator><author>Garnoopy's Java Cottage</author><pubDate>Sat, 06 May 2006 18:18:00 GMT</pubDate><guid>http://www.blogjava.net/garnoopy/archive/2006/05/07/44830.html</guid><wfw:comment>http://www.blogjava.net/garnoopy/comments/44830.html</wfw:comment><comments>http://www.blogjava.net/garnoopy/archive/2006/05/07/44830.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/garnoopy/comments/commentRss/44830.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/garnoopy/services/trackbacks/44830.html</trackback:ping><description><![CDATA[
		<p>1、Plugin Architecture<br />      基于OSGI R4发布的Rich Server Platform<br />      或者JMX能具有OSGI R4的功能</p>
		<p>2、ESB/EAI/BPM<br />      企业总线、整合、业务流程定制</p>
		<p>3、SCA<br />      期待有一天，Spring能实现SCA</p>
		<p>4、Domain Driven Development<br />      坚持领域对象！可是，领域对象有了，如何持久化？Hibernate？iBatis？如果有一天，ODBMS能成为主流，所有问题解决了。。。</p>
		<p>5、RIA<br />      Ajax、RCP、flash？ 等待PK结束中:)</p>
		<p>6、User Interaction<br />      80%的用户需要的是好用、漂亮。让剩下的20%对着黑乎乎的满屏字符面壁思过80天！</p>
		<p>7、Dynamic Language<br />      编译型语言比起动态语言有什么优势？能让用户看不到源代码。。。<br />      有开源当先锋，IBM最先醒悟，bea、oracle...等跟后，以后卖软件卖的是服务，卖啥源代码？卖啥源代码！</p>
		<p>8、Search Engine<br />      搜索！搜索！搜索！</p>
		<p>9、CMS/Wiki<br />      融影像、声音、图片、文字等等于一身 ＋ 群体创作、共享 ＋ Search，那个时候，世界该是多么美妙！</p>
		<p>10、Rule Engine<br />      自从有了这个，客户再怎么bt的需求，俺也不怕了！</p>
		<p>11、Business based on AOP<br />      如果整个系统都是基于AOP设计，到那个时候，再提什么用AOP搞定Logger、Exception、Transaction，会被人笑话的。。。</p>
		<p>12、Continuation<br />      离开了C/S，B/S又不爽，回到中间地带，使用RIA，怎么能少了Continuation？</p>
<img src ="http://www.blogjava.net/garnoopy/aggbug/44830.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/garnoopy/" target="_blank">Garnoopy's Java Cottage</a> 2006-05-07 02:18 <a href="http://www.blogjava.net/garnoopy/archive/2006/05/07/44830.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[ZZ]ibatis的动态sql</title><link>http://www.blogjava.net/garnoopy/archive/2006/04/26/43421.html</link><dc:creator>Garnoopy's Java Cottage</dc:creator><author>Garnoopy's Java Cottage</author><pubDate>Wed, 26 Apr 2006 13:49:00 GMT</pubDate><guid>http://www.blogjava.net/garnoopy/archive/2006/04/26/43421.html</guid><wfw:comment>http://www.blogjava.net/garnoopy/comments/43421.html</wfw:comment><comments>http://www.blogjava.net/garnoopy/archive/2006/04/26/43421.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/garnoopy/comments/commentRss/43421.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/garnoopy/services/trackbacks/43421.html</trackback:ping><description><![CDATA[
		<p>
				<strong>ibatis的动态sql</strong>
		</p>
		<p>
				<strong>
				</strong>
				<strong>
						<a href="http://blog.matrix.org.cn/page/zhenggc/20060314">http://blog.matrix.org.cn/page/zhenggc/20060314</a>
				</strong>
		</p>
		<p>
		</p>
		<p>虽然ibatis的动态mapping的功能很强大，但是很多时候动态mapping也很麻烦，比如我有很多编码表，想写一</p>
		<p>个mapping就搞定（在和wuyu等人聊天的时候的一个问题），这个时候就可以用到动态sql。<br /></p>
		<p>基本功能如下，如果参数多，可以建立parmeterMap，map中的参数可以用于动态sql。</p>
		<br />
		<p> &lt;select id="listCode" resultClass="Code"&gt;<br />  select code,content from $value$<br /> &lt;/select&gt;</p>
		<br />
		<p>这样就解决问题了，更多关注可以看ibatis中动态sql的源码，其实和动态mapping比较，一个preparestatement，一个是用replace先替换。并且两者可以同时存在。</p>
		<br />
		<p>powered by @_@/blog.matrix</p>
		<div>由<b>{0}</b>发表于 zhenggc <em class="smallText">@ 01:37 PM CST</em><span class="noDisplay">[</span><a class="storyLink" href="http://blog.matrix.org.cn/page/zhenggc?entry=ibatis%E7%9A%84%E5%8A%A8%E6%80%81sql">Comments [0]</a></div>
<img src ="http://www.blogjava.net/garnoopy/aggbug/43421.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/garnoopy/" target="_blank">Garnoopy's Java Cottage</a> 2006-04-26 21:49 <a href="http://www.blogjava.net/garnoopy/archive/2006/04/26/43421.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xOS，凤凰的陧磐，软件界的银弹...</title><link>http://www.blogjava.net/garnoopy/archive/2006/04/25/43141.html</link><dc:creator>Garnoopy's Java Cottage</dc:creator><author>Garnoopy's Java Cottage</author><pubDate>Tue, 25 Apr 2006 14:35:00 GMT</pubDate><guid>http://www.blogjava.net/garnoopy/archive/2006/04/25/43141.html</guid><wfw:comment>http://www.blogjava.net/garnoopy/comments/43141.html</wfw:comment><comments>http://www.blogjava.net/garnoopy/archive/2006/04/25/43141.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/garnoopy/comments/commentRss/43141.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/garnoopy/services/trackbacks/43141.html</trackback:ping><description><![CDATA[公司，不能无耻成这样！<br /><br />浪费我近两周的时间！<br /><br />等有时间，非得痛快的批它一把！<img src ="http://www.blogjava.net/garnoopy/aggbug/43141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/garnoopy/" target="_blank">Garnoopy's Java Cottage</a> 2006-04-25 22:35 <a href="http://www.blogjava.net/garnoopy/archive/2006/04/25/43141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DWR version 2.0 milestone 1</title><link>http://www.blogjava.net/garnoopy/archive/2006/04/13/40758.html</link><dc:creator>Garnoopy's Java Cottage</dc:creator><author>Garnoopy's Java Cottage</author><pubDate>Wed, 12 Apr 2006 16:35:00 GMT</pubDate><guid>http://www.blogjava.net/garnoopy/archive/2006/04/13/40758.html</guid><wfw:comment>http://www.blogjava.net/garnoopy/comments/40758.html</wfw:comment><comments>http://www.blogjava.net/garnoopy/archive/2006/04/13/40758.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/garnoopy/comments/commentRss/40758.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/garnoopy/services/trackbacks/40758.html</trackback:ping><description><![CDATA[
		<p>1、Reverse Ajax<br />在服务器端通过Java异步调用JavaScript<br />适用情况：高交互性的网站<br />问题：可能要用到web push技术保持Http的长连接，甚至要用到Jetty6的continuation！</p>
		<p>2、Cross Domain Ajax: &lt;script&gt; tag manipulation<br />跨域执行脚本。双刃剑啊。</p>
		<p>3、The &lt;signatures&gt; Element<br />用了JDK5，则不需要在dwr.xml里配置这个了。整个世界清静了。。。</p>
		<p>4、DWRUtil Updates</p>
		<p>5、New Attribute Scope - Script<br />类似于session的东东，不知道生命周期是否介于request和sesion之间，这样，是否代替了continuation？待考证。</p>
		<p>6、Examples<br />终于把例子整理到发布包了！dwr也有了自己的"PetStore"了！</p>
		<p>7、Refactoring<br />uk.ltd.getahead.dwr.* ---&gt;&gt;&gt; org.directwebremoting.*<br />早该如此:)</p>
		<p>8、Call Meta-data</p>
		<p>客户端：<br />Remote.getData(42, {<br />  callback:function(str) { alert(str); },<br />  customKey:"Fred",<br />});</p>
		<p>服务器端：<br />WebContextFactory.get().getHttpServletRequest().getAttribute("customKey");</p>
		<p>思考：<br />基于JS的annotation，何时才会有？</p>
		<p>9、Other Stuff - removed deprecated.js<br />no care~</p>
		<p>10、Security and Stability<br />JS的安全问题，的确是个问题。。。<br />其实，JS有很多自身加密的算法。。。<br /><br />更多信息：<br /><a href="http://getahead.ltd.uk/dwr/changelog/dwr20m1">http://getahead.ltd.uk/dwr/changelog/dwr20m1</a></p>
<img src ="http://www.blogjava.net/garnoopy/aggbug/40758.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/garnoopy/" target="_blank">Garnoopy's Java Cottage</a> 2006-04-13 00:35 <a href="http://www.blogjava.net/garnoopy/archive/2006/04/13/40758.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关注一下continuation</title><link>http://www.blogjava.net/garnoopy/archive/2006/04/11/40532.html</link><dc:creator>Garnoopy's Java Cottage</dc:creator><author>Garnoopy's Java Cottage</author><pubDate>Tue, 11 Apr 2006 15:27:00 GMT</pubDate><guid>http://www.blogjava.net/garnoopy/archive/2006/04/11/40532.html</guid><wfw:comment>http://www.blogjava.net/garnoopy/comments/40532.html</wfw:comment><comments>http://www.blogjava.net/garnoopy/archive/2006/04/11/40532.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/garnoopy/comments/commentRss/40532.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/garnoopy/services/trackbacks/40532.html</trackback:ping><description><![CDATA[
		<p>    今天一个同事问一个关于Tabpane的问题，说要做成Wizard的格式，用Session保存数据好，还是把数据随着request传递，隐藏在hidden表单域呢？我说，无论用那个，感觉都不爽。</p>
		<p>    放在session：wizard如果next多几步，数据放在session里，明显不妥，系统的Application、session这样的对象，是受严格控制，不能随便由程序员操作的。数据量大了，单机、集群的效率都会受到影响；而且，如果用户next了一半，然后关掉页面，干其它的去了，数据要一直等到session过期才失效。。。</p>
		<p>    放在request：每次next、previous，数据都要跟着request屁股后面跑，实在是不爽，况且，安全也是个问题。</p>
		<p>    是时候引出continuation了。什么是continuation？最简单的说，比如，你的程序有两行代码，continuation能保证你的程序在执行了第一行之后return，下次你再进入此程序，如果有个类似于“continuationId”的东东相同，程序就会从第二行代码开始执行。也就是说，程序有了自身状态的管理，有了“记忆”。</p>
		<p>    这么好的东东做Wizard实在是太适合了，可惜，Java语言本身并不支持此功能。于是，一些大牛们遍开始在framework级别搞这个，比如Java Framework支持continuation的有：Apache Cocoon 2、RIFE、Spring Web flow以及WebWork2（使用RIFE的实现）听说jetty6将在Web Server级别提供continuation的实现，实在是不错，google了一下，可惜还只是beta版。不过，看了一篇文章，里面介绍了如何在jetty6中使用continuatio，具体代码不贴了，感兴趣的可以自己看（<a href="http://chimpen.com/typo/articles/2006/01/15/jetty-6-continuations">http://chimpen.com/typo/articles/2006/01/15/jetty-6-continuations</a>）。配置文件如下：</p>
		<p>&lt;Set name="connectors"&gt;<br />  &lt;Array type="org.mortbay.jetty.Connector"&gt;<br />    &lt;Item&gt;<br />      &lt;New class="org.mortbay.jetty.nio.SelectChannelConnector"&gt;<br />        &lt;Set name="port"&gt;80&lt;/Set&gt;<br />       <font color="#ff0000"> &lt;Set name="maxIdleTime"&gt;50000&lt;/Set&gt;<br /></font>        &lt;Set name="Acceptors"&gt;1&lt;/Set&gt;<br />      &lt;/New&gt;<br />    &lt;/Item&gt;<br />  &lt;/Array&gt;<br />&lt;/Set&gt;</p>
		<p>    有了continuation，有了maxIdleTime，正好解决了使用request、sesssion一半的问题。怎么说是一半呢？目前的continuation，据我所知，只支持到单机的程度，集群下就不行了，这方面，使用request显然更合适；而且，各个框架或Web Server的实现机理是不是用到了session也未为可知，不知道究竟效率如何。。。</p>
		<p>    sigh，跑了半天，又跑回原地，看来得还是继续使用request比较划算。用老大的话说，宁可让程序员不爽一点，也不能让服务器不爽。。。汗！</p>
		<p>    continuation需要解决的两个问题：集群环境下continuation状态复制；性能问题。</p>
		<p>    基于其它框架及语言的实现，如Seaside，一个基于Smalltalk的的Web框架、Ruby等等，不再一列举，<br />意义不大，感兴趣的，可以看看，参考一下。</p>
		<p>一些参考资料：<br />phl: Jetty 6 Continuations<br /><a href="http://chimpen.com/typo/articles/2006/01/15/jetty-6-continuations">http://chimpen.com/typo/articles/2006/01/15/jetty-6-continuations</a></p>
		<p>Jetty 6.0 Continuations - AJAX Ready!<br /><a href="http://www.mortbay.com/MB/log/gregw/?permalink=Jetty6Continuations.html">http://www.mortbay.com/MB/log/gregw/?permalink=Jetty6Continuations.html</a></p>
		<p>tss: A Stateless Web experience with continuation server<br /><a href="http://www.theserverside.com/news/thread.tss?thread_id=39579">http://www.theserverside.com/news/thread.tss?thread_id=39579</a></p>
		<p>ibm: 用 continuation 开发复杂的 Web 应用程序<br /><a href="http://www-128.ibm.com/developerworks/cn/java/j-contin.html?ca=dwcn-newsletter-java">http://www-128.ibm.com/developerworks/cn/java/j-contin.html?ca=dwcn-newsletter-java</a></p>
		<p>ibm: 轻量级开发的成功秘诀，第 9 部分: 基于 Continuation 的框架<br /><a href="http://www-128.ibm.com/developerworks/cn/opensource/os-lightweight9/">http://www-128.ibm.com/developerworks/cn/opensource/os-lightweight9/</a></p>
		<p>csdn: 从Continuation说起<br /><a href="http://kb.csdn.net/java/Articles/200507/e365b18a-a8f0-4534-a4f7-616ccab179b2.html">http://kb.csdn.net/java/Articles/200507/e365b18a-a8f0-4534-a4f7-616ccab179b2.html</a></p>
<img src ="http://www.blogjava.net/garnoopy/aggbug/40532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/garnoopy/" target="_blank">Garnoopy's Java Cottage</a> 2006-04-11 23:27 <a href="http://www.blogjava.net/garnoopy/archive/2006/04/11/40532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最近读书：领域驱动、交互设计之路、Java解惑</title><link>http://www.blogjava.net/garnoopy/archive/2006/04/10/40335.html</link><dc:creator>Garnoopy's Java Cottage</dc:creator><author>Garnoopy's Java Cottage</author><pubDate>Mon, 10 Apr 2006 14:20:00 GMT</pubDate><guid>http://www.blogjava.net/garnoopy/archive/2006/04/10/40335.html</guid><wfw:comment>http://www.blogjava.net/garnoopy/comments/40335.html</wfw:comment><comments>http://www.blogjava.net/garnoopy/archive/2006/04/10/40335.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/garnoopy/comments/commentRss/40335.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/garnoopy/services/trackbacks/40335.html</trackback:ping><description><![CDATA[
		<p>    《领域驱动设计》，很早就想买的一本书，可惜没有影印版，原版的看看价钱，摸摸口袋，还是舍不</p>
		<p>得。终于买到中文版，大致浏览了一遍，翻译的还行。找了半天，也没发现作者对DSL的描述，深感</p>
		<p>遗憾。想起今天和ms的专家交流，针对他们ppt中出现的DSL问了几个问题，也没答出个所以然来。看来，</p>
		<p>还得继续看马丁同学的长篇大论。。。好的，一本书放在枕边，开始慢慢品味。</p>
		<p>    《交互设计之路》，买的是第二版。第一版曾在当年学VB的时候看过，当时只觉得新奇，而今重新读</p>
		<p>来，书中举例生动有趣，妙语生花，把软件交互阐述的淋漓尽致，真不愧大师手笔！工作闲暇之余，曾看</p>
		<p>过不少UI设计界面，设计的好看的不少，真正考虑到交互设计的没有多少。看来，软件交互在国内还远没</p>
		<p>有受到足够的重视。有时候，静下心来，想一想“为什么windows的开始菜单要放在屏幕的左下角”这样</p>
		<p>的问题，或许会有不小的收获。</p>
		<p>    《Java解惑》。不买纯编程技术书籍已经很久，唯看到这本解惑，忍不住心动买下，权当茶余饭后的</p>
		<p>精致糕点，需要细细品尝，方得其味。</p>
		<p>    最近一期的《程序员》，读到算法那几页，赶紧翻过去，不是不用看，是心虚，想起大学的数据结构</p>
		<p>老师，更是汗颜。看来，得好好研究一下了。。。<br /></p>
<img src ="http://www.blogjava.net/garnoopy/aggbug/40335.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/garnoopy/" target="_blank">Garnoopy's Java Cottage</a> 2006-04-10 22:20 <a href="http://www.blogjava.net/garnoopy/archive/2006/04/10/40335.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>