??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲综合一区二区三区,亚洲美女又黄又爽在线观看,亚洲第一页在线视频http://m.tkk7.com/calvin/category/3382.html依旧是JavaEEzh-cnMon, 09 May 2011 03:45:17 GMTMon, 09 May 2011 03:45:17 GMT60转战微博Mhttp://m.tkk7.com/calvin/archive/2011/05/09/349826.html江南白衣江南白衣Mon, 09 May 2011 03:24:00 GMThttp://m.tkk7.com/calvin/archive/2011/05/09/349826.htmlhttp://m.tkk7.com/calvin/comments/349826.htmlhttp://m.tkk7.com/calvin/archive/2011/05/09/349826.html#Feedback0http://m.tkk7.com/calvin/comments/commentRss/349826.htmlhttp://m.tkk7.com/calvin/services/trackbacks/349826.html地址Q?http://t.sina.com.cn/calvin1978 Q大家互相关注一下哦?  阅读全文

江南白衣 2011-05-09 11:24 发表评论
]]>
一ơJava垃圾攉调优实战http://m.tkk7.com/calvin/archive/2008/07/09/213535.html江南白衣江南白衣Wed, 09 Jul 2008 02:13:00 GMThttp://m.tkk7.com/calvin/archive/2008/07/09/213535.htmlhttp://m.tkk7.com/calvin/comments/213535.htmlhttp://m.tkk7.com/calvin/archive/2008/07/09/213535.html#Feedback1http://m.tkk7.com/calvin/comments/commentRss/213535.htmlhttp://m.tkk7.com/calvin/services/trackbacks/213535.html阅读全文

江南白衣 2008-07-09 10:13 发表评论
]]>
架构师书?/title><link>http://m.tkk7.com/calvin/archive/2007/02/09/98914.html</link><dc:creator>江南白衣</dc:creator><author>江南白衣</author><pubDate>Fri, 09 Feb 2007 01:44:00 GMT</pubDate><guid>http://m.tkk7.com/calvin/archive/2007/02/09/98914.html</guid><wfw:comment>http://m.tkk7.com/calvin/comments/98914.html</wfw:comment><comments>http://m.tkk7.com/calvin/archive/2007/02/09/98914.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://m.tkk7.com/calvin/comments/commentRss/98914.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/calvin/services/trackbacks/98914.html</trackback:ping><description><![CDATA[     摘要: Z2007q的目标Q列了下面待L重读的书单?<br> 不在书单里的Q小部分是我漏掉的,大部分是我觉得对于架构师不太重要Q或者不够好的?<br> 奇怪国外真正的好书来来d也就那么几本Qemule加上国内出版C努力Q我们看的东西和老外已差不多Qؓ什么老外看完那么生猛,我们看完p是半桶水呢?nbsp; <a href='http://m.tkk7.com/calvin/archive/2007/02/09/98914.html'>阅读全文</a><img src ="http://m.tkk7.com/calvin/aggbug/98914.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/calvin/" target="_blank">江南白衣</a> 2007-02-09 09:44 <a href="http://m.tkk7.com/calvin/archive/2007/02/09/98914.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring2.0QStruts2.0QSpringSide 2.0--SpringSide 2.0M1 Release Noteshttp://m.tkk7.com/calvin/archive/2006/11/28/83925.html江南白衣江南白衣Mon, 27 Nov 2006 16:16:00 GMThttp://m.tkk7.com/calvin/archive/2006/11/28/83925.htmlhttp://m.tkk7.com/calvin/comments/83925.htmlhttp://m.tkk7.com/calvin/archive/2006/11/28/83925.html#Feedback14http://m.tkk7.com/calvin/comments/commentRss/83925.htmlhttp://m.tkk7.com/calvin/services/trackbacks/83925.html   [摘要]Spring发了2.0QStruts发了2.0QSS也来凑凑2.0的热闏V下载地址Q?span class="nobr">http://www.springside.org.cn/download.php

    SpringSide 2.0改用了Pragmatic版的Struts作ؓMVCL框架Q重写了所有的代码Q增加了新项目生成的命o和构件化的开源栈Q还增加了方便新手入门的HelloworldCZ?/p>

    随着Java开源社区的日日q步QSpringSide升了包括Spring 2.0的AOP事务配置Q?Hibernate3.2的annotation模式QXFire1.2.2的最新简U配|及JSR181模式Q以及ActiveMQ4.1 的Message Driven POJO新模式?/p>

    另外Q还增加了iBatis数据讉K模式和一pdAjax WidgetsQƈ全面推行了Selenium集成试?/p>

    全文地址Q?a >http://blog.csdn.net/calvinxiu/archive/2006/11/28/1417730.aspx



江南白衣 2006-11-28 00:16 发表评论
]]>
l编E狂热者的ant taskW记http://m.tkk7.com/calvin/archive/2006/09/07/68150.html江南白衣江南白衣Wed, 06 Sep 2006 16:34:00 GMThttp://m.tkk7.com/calvin/archive/2006/09/07/68150.htmlhttp://m.tkk7.com/calvin/comments/68150.htmlhttp://m.tkk7.com/calvin/archive/2006/09/07/68150.html#Feedback13http://m.tkk7.com/calvin/comments/commentRss/68150.htmlhttp://m.tkk7.com/calvin/services/trackbacks/68150.html 

   q篇文档是专门写l那些编E狂热者,在Ant里编E时要留意的重要Task?br>
    不知ZQ老外的各U脚本都写得格外漂亮。从Appfuse里学到很多,在编?a _fcksavedurl="http://wiki.javascud.org/display/springs/Home">SpringSide2.0的构件安装脚本时又被q自学了不少Q这里作下ȝ?/p>

   全文地址Q?a >http://blog.csdn.net/calvinxiu/archive/2006/09/07/1187329.aspx

江南白衣 2006-09-07 00:34 发表评论
]]>
QuickServer--在吵闹的环境里快速搭qTcpServer(Pragmaticpd) http://m.tkk7.com/calvin/archive/2006/08/12/63260.html江南白衣江南白衣Sat, 12 Aug 2006 15:27:00 GMThttp://m.tkk7.com/calvin/archive/2006/08/12/63260.htmlhttp://m.tkk7.com/calvin/comments/63260.htmlhttp://m.tkk7.com/calvin/archive/2006/08/12/63260.html#Feedback12http://m.tkk7.com/calvin/comments/commentRss/63260.htmlhttp://m.tkk7.com/calvin/services/trackbacks/63260.html阅读全文

江南白衣 2006-08-12 23:27 发表评论
]]>
Nutch 0.8W记--Google式的搜烦引擎实现 http://m.tkk7.com/calvin/archive/2006/08/09/62507.html江南白衣江南白衣Wed, 09 Aug 2006 01:42:00 GMThttp://m.tkk7.com/calvin/archive/2006/08/09/62507.htmlhttp://m.tkk7.com/calvin/comments/62507.htmlhttp://m.tkk7.com/calvin/archive/2006/08/09/62507.html#Feedback15http://m.tkk7.com/calvin/comments/commentRss/62507.htmlhttp://m.tkk7.com/calvin/services/trackbacks/62507.html
Nutch 0.8 完全使用Hadoop重写了骨q代码,另外很多地方作了合理化修正,非常值得升。[阅读全文]
  阅读全文

江南白衣 2006-08-09 09:42 发表评论
]]>
SpringSide 1.0 M3-All in one 发布http://m.tkk7.com/calvin/archive/2006/08/08/62274.html江南白衣江南白衣Tue, 08 Aug 2006 00:34:00 GMThttp://m.tkk7.com/calvin/archive/2006/08/08/62274.htmlhttp://m.tkk7.com/calvin/comments/62274.htmlhttp://m.tkk7.com/calvin/archive/2006/08/08/62274.html#Feedback5http://m.tkk7.com/calvin/comments/commentRss/62274.htmlhttp://m.tkk7.com/calvin/services/trackbacks/62274.html
q个版本除了l箋跑马圈地外,也对代码l构作了很多遍重构,l于使复杂的目以比较顺眼的方式l织h了?

  阅读全文

江南白衣 2006-08-08 08:34 发表评论
]]>
Prototype.js--Javascript~写者的军刀http://m.tkk7.com/calvin/archive/2006/06/17/53471.html江南白衣江南白衣Sat, 17 Jun 2006 05:58:00 GMThttp://m.tkk7.com/calvin/archive/2006/06/17/53471.htmlhttp://m.tkk7.com/calvin/comments/53471.htmlhttp://m.tkk7.com/calvin/archive/2006/06/17/53471.html#Feedback15http://m.tkk7.com/calvin/comments/commentRss/53471.htmlhttp://m.tkk7.com/calvin/services/trackbacks/53471.html阅读全文

江南白衣 2006-06-17 13:58 发表评论
]]>
2006q中 My Favorite Java Sitehttp://m.tkk7.com/calvin/archive/2006/06/06/50911.html江南白衣江南白衣Tue, 06 Jun 2006 13:20:00 GMThttp://m.tkk7.com/calvin/archive/2006/06/06/50911.htmlhttp://m.tkk7.com/calvin/comments/50911.htmlhttp://m.tkk7.com/calvin/archive/2006/06/06/50911.html#Feedback12http://m.tkk7.com/calvin/comments/commentRss/50911.htmlhttp://m.tkk7.com/calvin/services/trackbacks/50911.html1.TheServerside.com  依然是地位无可动摇的CCTV1?/p>

2.InfoQ.com Floyd Marinescu 在离开 TSS 后另LӞ2006q中最重要推荐。视野不再局限于Java 而是包括Java,.Net, Ruby ,SOA, AgileҎ{热门话题?/p>

3.JDJ的电子杂?/a> 在JDJ首页的最底处订阅Q文章质量不低于5-7的传l三强?/p>

4.SWik.net  攉了大量OpenSource Project的资源聚合。其中如SpringQHibernate的更新度非常高,出现什么和Spring有关的blog,article,project都会马上被聚合?/p>

5.IBM DeveloperWorks 传统、稳定的Java文章来源地?/p>

6.JavaWorld 传统、稳定的Java文章来源地?/p>

7.OnJava  传统、稳定的Java文章来源地?/p>

8.Artima.com cM于TSS而略逊,其中Spotlight 文章值得xQ?a >Java News是聚合了所有其他Java站点的大聚合?/p>

9.JavaLobby  站内?a >Announcements 是大大小Java  Project的发布声明区Q?a >Trips and Tricks 有很多的Tips?/p>

10. No Fluff Just Stuff 的Blogs 聚合 一直缺一个所有优UJava Blogger的rss总聚合,NFJSq里勉强一个?/p>

江南白衣 2006-06-06 21:20 发表评论
]]>
Retrotranslator--JDK5.0目完全转换为JDK1.4 字节码的恩物http://m.tkk7.com/calvin/archive/2006/04/27/43443.html江南白衣江南白衣Wed, 26 Apr 2006 16:05:00 GMThttp://m.tkk7.com/calvin/archive/2006/04/27/43443.htmlhttp://m.tkk7.com/calvin/comments/43443.htmlhttp://m.tkk7.com/calvin/archive/2006/04/27/43443.html#Feedback15http://m.tkk7.com/calvin/comments/commentRss/43443.htmlhttp://m.tkk7.com/calvin/services/trackbacks/43443.html和Retroweaver一P大家直接用JDK5开发,最后通过ASM转换到JDK1.4的字节码Q部|到JDK1.4的运行环境。但它不仅支持JDK5的语法,q支持JDK5的新增API?nbsp; 阅读全文

江南白衣 2006-04-27 00:05 发表评论
]]>
Message Driven POJOhttp://m.tkk7.com/calvin/archive/2006/03/25/37356.html江南白衣江南白衣Sat, 25 Mar 2006 09:04:00 GMThttp://m.tkk7.com/calvin/archive/2006/03/25/37356.htmlhttp://m.tkk7.com/calvin/comments/37356.htmlhttp://m.tkk7.com/calvin/archive/2006/03/25/37356.html#Feedback4http://m.tkk7.com/calvin/comments/commentRss/37356.htmlhttp://m.tkk7.com/calvin/services/trackbacks/37356.html阅读全文

江南白衣 2006-03-25 17:04 发表评论
]]>
做环保主义者,用Maven2 理Javacdhttp://m.tkk7.com/calvin/archive/2006/03/19/36098.html江南白衣江南白衣Sun, 19 Mar 2006 12:59:00 GMThttp://m.tkk7.com/calvin/archive/2006/03/19/36098.htmlhttp://m.tkk7.com/calvin/comments/36098.htmlhttp://m.tkk7.com/calvin/archive/2006/03/19/36098.html#Feedback21http://m.tkk7.com/calvin/comments/commentRss/36098.htmlhttp://m.tkk7.com/calvin/services/trackbacks/36098.html 而且QJava的类库也急需摆脱q种无n份无C一个jar包随处摆攄境况。MavenlJar以名份是一个好方向?
  阅读全文

江南白衣 2006-03-19 20:59 发表评论
]]>
UTF-8、Subversion、Maven2--2007q的目特征http://m.tkk7.com/calvin/archive/2006/03/19/36096.html江南白衣江南白衣Sun, 19 Mar 2006 12:42:00 GMThttp://m.tkk7.com/calvin/archive/2006/03/19/36096.htmlhttp://m.tkk7.com/calvin/comments/36096.htmlhttp://m.tkk7.com/calvin/archive/2006/03/19/36096.html#Feedback5http://m.tkk7.com/calvin/comments/commentRss/36096.htmlhttp://m.tkk7.com/calvin/services/trackbacks/36096.html  阅读全文

江南白衣 2006-03-19 20:42 发表评论
]]>
八卦Sourceforge后台的空间规?/title><link>http://m.tkk7.com/calvin/archive/2006/02/27/32725.html</link><dc:creator>江南白衣</dc:creator><author>江南白衣</author><pubDate>Mon, 27 Feb 2006 12:41:00 GMT</pubDate><guid>http://m.tkk7.com/calvin/archive/2006/02/27/32725.html</guid><wfw:comment>http://m.tkk7.com/calvin/comments/32725.html</wfw:comment><comments>http://m.tkk7.com/calvin/archive/2006/02/27/32725.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.tkk7.com/calvin/comments/commentRss/32725.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/calvin/services/trackbacks/32725.html</trackback:ping><description><![CDATA[     摘要: SourceForge用了许多q_最q才靠springside淯了它的后台。八卦一把去sf混个戉K有什么好处,q有它以什么规则,l持q么大一间善堂的q作?nbsp; <a href='http://m.tkk7.com/calvin/archive/2006/02/27/32725.html'>阅读全文</a><img src ="http://m.tkk7.com/calvin/aggbug/32725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/calvin/" target="_blank">江南白衣</a> 2006-02-27 20:41 <a href="http://m.tkk7.com/calvin/archive/2006/02/27/32725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>春节推荐M?/title><link>http://m.tkk7.com/calvin/archive/2006/01/24/29085.html</link><dc:creator>江南白衣</dc:creator><author>江南白衣</author><pubDate>Tue, 24 Jan 2006 04:00:00 GMT</pubDate><guid>http://m.tkk7.com/calvin/archive/2006/01/24/29085.html</guid><wfw:comment>http://m.tkk7.com/calvin/comments/29085.html</wfw:comment><comments>http://m.tkk7.com/calvin/archive/2006/01/24/29085.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://m.tkk7.com/calvin/comments/commentRss/29085.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/calvin/services/trackbacks/29085.html</trackback:ping><description><![CDATA[     摘要: g老外有这个习惯,逢年q节都会推荐一些书大家在家里充c?nbsp; <a href='http://m.tkk7.com/calvin/archive/2006/01/24/29085.html'>阅读全文</a><img src ="http://m.tkk7.com/calvin/aggbug/29085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/calvin/" target="_blank">江南白衣</a> 2006-01-24 12:00 <a href="http://m.tkk7.com/calvin/archive/2006/01/24/29085.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>q到的模仿:JDBC 3.0 RowSetQ类gADO的编E方?http://m.tkk7.com/calvin/archive/2006/01/14/28046.html江南白衣江南白衣Sat, 14 Jan 2006 11:18:00 GMThttp://m.tkk7.com/calvin/archive/2006/01/14/28046.htmlhttp://m.tkk7.com/calvin/comments/28046.htmlhttp://m.tkk7.com/calvin/archive/2006/01/14/28046.html#Feedback2http://m.tkk7.com/calvin/comments/commentRss/28046.htmlhttp://m.tkk7.com/calvin/services/trackbacks/28046.html江南白衣     

  JDBC有够慢的Q出C3.0了才有个Rowset能类gwindows下ADO的概念,却还是达不到ADO.net的水q뀂幸亏Java里ORMq块比较争气Q趁着C#的ObjectSpace跳票Q可以l耀武扬威?

  RowsetҎ于ResultSetQ除了不用保持Connecton外,更重要特Ҏ能够cM于ADO的编E方式,直接对Row赋值来q行Insert与UpdateQ?而不用写SQL语句?nbsp;  在windows~程中经常可见这U模式,特别是ADO.net用的好时QORM也只能算是锦上添?...

     在oracle的sample代码中,rowset02.java完整demo了RowSet的ADO模式?BR>     化后的代码如下:

public class RowSet02
 {
  
public static void main (String []args)
  {
   
try
    {
         OracleCachedRowSet crowset 
= new OracleCachedRowSet (); 
          crowset.setUrl (java:oracle:oci8:@);
          crowset.setUsername (
"hr"); 
          crowset.setPassword (
"hr"); 
        
          
/*Select*/ 
          crowset.setCommand (
"SELECT seatno, tdate, name, class FROM reservation");
          crowset.execute ();
          System.out.println (
"Seat no  Travel Date  Name   Class"); 
          
while (crowset.next ()) 
          { 
             printRow (crowset);
          }
          crowset.setReadOnly (
false); 
    
          
/*Update*/ 
          crowset.beforeFirst ();
          
if (crowset.absolute (2))
         {
             crowset.updateString (
4"Business");
             crowset.updateRow ();
          } 

          
/*Insert*/  
          crowset.beforeFirst ();  
          crowset.moveToInsertRow (); 
          crowset.updateInt (
1107);  
          crowset.updateDate (
2new Date (975915381774L));
          crowset.updateString (
3"Pluto");
          crowset.insertRow ();

           
/*Delete*/ 
          crowset.beforeFirst (); 
          
if (crowset.absolute (6)) 
         {
            crowset.deleteRow (); 
         }
         
         crowset.acceptChanges (); 
         crowset.close (); 
     }
    catch (SQLException ea) 
    {
      ea.printStackTrace (); 
   }
  }
 }


江南白衣 2006-01-14 19:18 发表评论
]]>
ORM透明持久化方案面对的共同困境http://m.tkk7.com/calvin/archive/2006/01/05/26791.html江南白衣江南白衣Thu, 05 Jan 2006 13:22:00 GMThttp://m.tkk7.com/calvin/archive/2006/01/05/26791.htmlhttp://m.tkk7.com/calvin/comments/26791.htmlhttp://m.tkk7.com/calvin/archive/2006/01/05/26791.html#Feedback17http://m.tkk7.com/calvin/comments/commentRss/26791.htmlhttp://m.tkk7.com/calvin/services/trackbacks/26791.html江南白衣    
 
   上次FB的吹水摘录:

     除JDBC外的数据讉K技术包括EJBQHibernateQJDOQiBatis{,但凡是ORM的总要面对相同的困境,如果透明持久化的Q苦恼就更多 --Java数据讉K技术依然在~慢跨越鸿沟Q?NetC֌的同学用不着眼热心蟩Q?BR>
     1.查询语言--UL重回原来极想摆脱的sqlQ但实现得又不如SQL成熟?/STRONG>
        因ؓQueryObjectQCriteria API的可L太差,最后所有技术方案都回到它们原来一力想摆脱的SQL的\上。而且Q因为是重新仓促设计Q都不如sql 的成熟,L很多做不到的地方。像刚开始的EJB QLQ几乎什么都做不了,而hibernate 3.0 HQL把h2的代码抛弃了重新实现才达到相Ҏ意的水^?BR>
    2.U极载入和懒惰蝲?-不能如sql般每ơ随需定制
       ORM与jdbc讉K的区别,是以包含关联对象的对象Q而不是以sql自由定制的ResultSetQ作为数据蝲入的M?BR>
       U极载入{略在蝲入订单对象时Q会接着载入֮对象、品对象,而如果品对象又包含cd对象?....整个数据库被拖了一半出来。即使不玩连q看Qclob对象的胡p入就够头痛了?BR>
      与此对应的就是懒惰蝲入策略,比如EJB的初始版本,据闻每个属性查询一ơ数据库Q数据库往q次数多得吓人?BR>
      ORMҎ会让用户自行定义q两U策略来辑ֈq。一般默认采用积极蝲入,在一对多兌上定义lazy loadQ还有统一定义U极载入的层数。到了hibernate 3Q更可以在列U别上定义lazy load?BR>
      问题是,上述的定义都在hbm文gQ?STRONG>每种对象的蝲入策略只能定义一?/STRONG>。而不能像jdbc那样Q?STRONG>Ҏ不同的情况select不同的结果列
?BR>
      带一个问题是那些信息不完全对象,比如产品只有序号和名字,不带其他信息Ӟ在一个纯面向对象环境里不好表C,hibernate提供的componentҎ也不是太好?BR>
3.透明持久?-对POJO的一些时操作也会被持久?/STRONG>
     因ؓ持久化是透明的,很容易就会误用,对POJOq行的一些时操作,一不小心就被保存进数据库中。再加上SessionQ事务的混ؕQ远q没有用jdbc跑DML语句那么Ҏ搞清楚发生的事情?BR>
    而且Q不是每个程序员都能习惯新的透明持久化环境,都对所用ORMpȝ的持久化{略理解深刻。何况这些策略以及整合它们的框架如SpringQ还l常毫无提示的在升时发生改?!!

    所以,每个使用ORM的团队,在项目过E里M有闹鬼的几天......


江南白衣 2006-01-05 21:22 发表评论
]]>
启动SpringSide--Promatic Enterprise Application KickStart目http://m.tkk7.com/calvin/archive/2006/01/02/26347.html江南白衣江南白衣Mon, 02 Jan 2006 09:47:00 GMThttp://m.tkk7.com/calvin/archive/2006/01/02/26347.htmlhttp://m.tkk7.com/calvin/comments/26347.htmlhttp://m.tkk7.com/calvin/archive/2006/01/02/26347.html#Feedback79http://m.tkk7.com/calvin/comments/commentRss/26347.htmlhttp://m.tkk7.com/calvin/services/trackbacks/26347.html作者:江南白衣   

    SpringSide--Pragmatic Enterprise Application KickStart and Common Library StackQ这么长的一个名字下来,不用解释大家都知道是做什么的?---以Spring Framework为coreQ提供一个Pragmatic的企业应用开发基和最佛_践展C?br />
   定位Q?/strong>Z用Spring框架的开发者提供一个非Demo版的复杂、正式而体现最佳用实늚参照pȝ?

   目标Q?/strong>囊括JavaEE必须面­对的所有问题的合理的、合乎实跉|准的解决ҎQ采用Plugins形式l织Q开发者可快速定位所需的参考方案ƈ做加法到自己的系l?br /> 
    目|站Q?a >http://www.springside.org.cn 
    or http://springside.sourceforge.net
  
    1. Featrue List   


  •  
        2. SpringSide与Appfuse有什么不同?
        1.SpringSide较完整的演示了企业应用的各个主题Q而Appfuse只有单的登陆界面和用L理?br />
        2.SpringSide是深受Ruby on Rails影响的Pragmatic型的Ҏ?br />
        3.Appfuse主要目的是展C各式mvc、ormҎ与Spring的结合,有些技术属于高手玩P?a >SpringSide展示的是一个国内项目的实际形态,q带中文手册与大量中文代码注?br />
        4. 脚本l节
      SpringSide的基本结构是JDK1.4 + Spring 2.0 + hibernate3 + Spring MVC multi-action + JSP2.0?br designtimesp="10590" />
        使用 XFire提供WebService订书的服务端接口?Java?.Net版的客户端示范代码?br designtimesp="10593" />
        店员是个D的学生,所以系l会为每张订单发一通知邮gl店员。ؓ了不影响֮下单的速度Q发信的动作由jms异步q行?br designtimesp="10595" />   
        pȝq会?a designtimesp="10597"> Quartz定时扫描~的图书,用邮仉知店员?br designtimesp="10598" />    
        老板只负责看一些色彩丰富,带图的报表。Eclipse Birt2.0提供日常报表 Q?a designtimesp="10600"> Openi提供BI OLAP的?br designtimesp="10601" />
        ZLucene?a designtimesp="10604"> Compass做的图书全文搜烦?br designtimesp="10605" />
        Z Drools规则引擎的订单满100元免q费Q会员积分制{。     ?br designtimesp="10608" />
        店面演示Ajax效果?a designtimesp="10610"> OSCache的Web CacheQ?a target="_blank" designtimesp="10611">SiteMesh的渲染效果用?

        一些非关键业务Q用 Groovy动态语a来快速开发?br designtimesp="10615" />
        log4jpȝ重要操作员日志异步写入数据库,使它们可理?br designtimesp="10618" />
        l合?a target="_blank" designtimesp="10620">Acegi i安全权限理?br designtimesp="10621" />
        utf-8, i18n的国际化目?

       ServiceMix QWorkFlow的故事设计中?br />
        5. RoadMap
        Road Map in  JIRA Issue Checker ,Ƣ迎大家提出更多Topic
        .
        6. 团队成员列表 (排名按加入顺?
       
         Ƣ迎朋友们加入。h多速度快是很重要的事情?br />
       参加方式?U?br />   1.帮忙codereview提意?br />   2.?u>JIRA里面领Q?br />   3.?font color="#0000ff">JIRA 提出CQ务?br />
      真正贡献了力量的同志自然会成为开发h?

       
        Team WorkerQ?br />     江南白衣QcacQ@_@QwuyuQcharlse, efaQyimlin  
         ContributorQ?/strong>
         water ye QtotodoQdavid.turingQpesomeQoofrank
      
         长老供奉:
          庄表伟,Robbin

         (排名按加入时_

    7. 交流?/strong>

  • 演示站点
  • 开发RoadMap
  • Spring中文论坛专区
  • 团队开发日?

    开发者QQ:15690287 (only for Springside developer)
    用户QQ? 21601442


  • 江南白衣 2006-01-02 17:47 发表评论
    ]]>
    在厨房,车顶Q草C使用Springhttp://m.tkk7.com/calvin/archive/2005/12/30/26015.html江南白衣江南白衣Fri, 30 Dec 2005 02:40:00 GMThttp://m.tkk7.com/calvin/archive/2005/12/30/26015.htmlhttp://m.tkk7.com/calvin/comments/26015.htmlhttp://m.tkk7.com/calvin/archive/2005/12/30/26015.html#Feedback11http://m.tkk7.com/calvin/comments/commentRss/26015.htmlhttp://m.tkk7.com/calvin/services/trackbacks/26015.html   作者:江南白衣    

        Spring再强大,也要面对降的问?-因ؓSpring不是Weblogic、Tomcat般的层容器QServlet和EJB对象不由它创建,所以它必须要降临到Weblogic、Tomcat所在的位面?BR>     初学者一般不用管那么多,照着Spring+hibernate+Struts之类的Sample做了,但慢慢的Q也许就要开始在jsp+javabean体系Q土制框Ӟsingletoncȝ环境下用Spring了?BR>     《Professional Java Development with the Spring Framework》第3章有"Managing the Containe"一节讲q个问题。一般可以分为直接召唤系与IoC fashion两类?BR>
         1.直接召唤p?-Singleton的Application Context
          最单的Q就像在UnitTest里那P直接构造Application ContextQ?/P>
    ApplicationContext ctx = new ClasspathXmlApplicationContext("ApplicationContext.xml");

        
          在Web环境里,会用ContextLoader构造ApplicationContext后,压进Servlet Context?BR>      由ContextLoaderListener或ContextLoaderServletQ在Web应用启动时完成?BR>      然后在Jsp/Servelet中,可以通过Servlet Context取得ApplicationContextQ?
    ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(application);

         
          但像singletoncL者EJB中,没有Servlet Context可用了?BR>      如果全部像UnitTest那样直接构造,速度׃很不堪。自然的Q就惛_把ApplicationContext做成单例?nbsp;
          Spring提供?SPAN class=fixed>ContextSingletonBeanFactoryLocatorq样的物体?BR>      先搞一个beanRefFactory.xmlQ里面写上所有的applcationContext-*.xml文g名,q把Context命名?default-context"Q?
    <beans>
      
    <bean id="default-context"  class="org.springframework.context.support.ClassPathXmlApplicationContext">
        
    <constructor-arg>
          
    <list> <value>applicationContext.xml</value></list>
        
    </constructor-arg>
      
    </bean>
    </beans>

      然后让loactorL它,但代码有炚wQ?
    BeanFactoryReference bfr =  DefaultLocatorFactory.getInstance().useBeanFactory("default-context");
    BeanFactory factory = bfr.getFactory();
    MyService myService 
    = factory.getBean("myService");
    bfr.release();
    // now use myService


        上面的代码实在是太灵z,太麻烦了?BR>    q不如自己实C个简单的SingletonQ扩展ContextLoaderListenerc,在Webpȝ启动时压入Singleton?BR>
       
    新的ContextLoaderListenerc重载如下,ContextUtil中包含一个静态的ApplicationContext变量Q?BR>
        public void contextInitialized(ServletContextEvent event)
        {
            
    super.contextInitialized(event);

            ServletContext context 
    = event.getServletContext();
            ApplicationContext ctx 
    = WebApplicationContextUtils.getRequiredWebApplicationContext(context);
            ContextUtil.setContext(ctx);
        }

       用家可直接取用:
     ApplicationContext context = ContextUtil.getContext();


    2.IoC fashion
        如果所有地斚w使用直接召唤p,那就反而是在打Rod的耛_了。因Z一直都反对代码与框架深耦合的?BR>    所以,更好的方法是写一些glue code、base class来完成Spring的降_而不让应用代码察觉Spring Application Context的存在?BR>    不过Q因为各个框架的l构不同QRod也没办法讲出一个通用的整合方法,所以徏议大家尽量学习已整合的各U框Ӟ如Spring MVC、Struts的种U方式,写出自己的简单整合代码来?BR>
        只有不确定的调用某些Singletonc,不适合q早ioc的情况,可以使用直接召唤pR?BR>

    江南白衣 2005-12-30 10:40 发表评论
    ]]>
    全球四大Java研讨?/title><link>http://m.tkk7.com/calvin/archive/2005/12/22/25034.html</link><dc:creator>江南白衣</dc:creator><author>江南白衣</author><pubDate>Thu, 22 Dec 2005 02:57:00 GMT</pubDate><guid>http://m.tkk7.com/calvin/archive/2005/12/22/25034.html</guid><wfw:comment>http://m.tkk7.com/calvin/comments/25034.html</wfw:comment><comments>http://m.tkk7.com/calvin/archive/2005/12/22/25034.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.tkk7.com/calvin/comments/commentRss/25034.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/calvin/services/trackbacks/25034.html</trackback:ping><description><![CDATA[作者:<A ><FONT color=#366900>江南白衣</FONT></A> <BR><BR>每年的全球四大Java研讨会,它们的agendaQ给大家提供了一个捉摸Java时尚风向的便利?BR>每年花几天看一遍它们的报道和share出来的slidesQ是CTO该做的事情?BR><BR>PS. 如果你被邀在哪里做讲演Q又想不到给下面那些似睡似醒的猪头说什么的Q可以从中参考一二?BR>PS2.在迷宫一L|站中翻滚了半个时Q把agenda和slides的链接都整理了出来,便h便己?BR><BR><A >TheServerSide Symposium</A> 对很多h来说QTheServerSide才是真正的Java官方C֌--<A >06q的agenda</A>?BR><BR><A >JavaPoils</A> Ƨ洲最大的Java研讨?-<A >05q报?/A>Q?A >04q完整Slides</A>Q?A >05q?1)pdf陆箋补全?/A>Q?A >05q?2)pdf</A>Q?A >04q的talk</A> (需单注册)?BR><BR><A >Java One</A> 官方Q官?....--<A >05q报?/A>Q?A >05,04q的ppt</A>?BR><BR><A >No Fluff Just Stuff tour</A>  UNFJS的大马戏团,最q的<A >Spring Experience</A>也是和它一h?BR>--<A >05q某ơ的报道</A>Q?A >q往的Agenda</A>Q?A >Spearker的blog聚合</A>?img src ="http://m.tkk7.com/calvin/aggbug/25034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/calvin/" target="_blank">江南白衣</a> 2005-12-22 10:57 <a href="http://m.tkk7.com/calvin/archive/2005/12/22/25034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个2Q0Q年末典型的Java EE场景http://m.tkk7.com/calvin/archive/2005/12/17/24335.html江南白衣江南白衣Sat, 17 Dec 2005 03:47:00 GMThttp://m.tkk7.com/calvin/archive/2005/12/17/24335.htmlhttp://m.tkk7.com/calvin/comments/24335.htmlhttp://m.tkk7.com/calvin/archive/2005/12/17/24335.html#Feedback54http://m.tkk7.com/calvin/comments/commentRss/24335.htmlhttp://m.tkk7.com/calvin/services/trackbacks/24335.html    作者:江南白衣 

     俗话说得好,没吃q猪肉不要紧Q没见过猪跑路就很没面子了。新公司上班一周,主要是看猪跑\Q?005q末Q一个典型的Java EE目Q场景是q样的:

        1.一台内存强得变态的Sparc呼哧呼哧的在?A >Oracle 10g?BR>
        2.它的一个兄弟,׃nT3阵列Q静静的?A >vcs 为它做着双机热备份?BR>
        3.两台Weblogic 9做群集负责后台管理?BR>    ~程模式是最老土?A >struts+spring+hibernateQ再y一?A >Ajax?BR>
        4.四台Weblogic 9做群集负责前台门戗?BR>    最直接的jsp + javabeanQ用weblogic的tag作了面Cache?BR>    weblogicq发布了一堆Web Service接口Q也不时调用一下合作伙伴提供的WS?BR>    最后还有一伙定时Task在奔跑,有些是自动改变帐单状态,有些是自动把数据导出Qftp到合作伙伴那?BR>
        5. 一?A >Crystal Reports XI 的报表服务器?BR>    逻辑都用PL/SQL装在SP和中间表里,设计报表时直接取用便是,不沾一丝Java代码的烟火?BR>    PS. q台也是唯一的Windows ServerQ?BR>
        6. q有一些跑TomcatQ省?的独立小应用Q一些C写的dQ零散的分布在上?台服务器的角落?BR>

     



    江南白衣 2005-12-17 11:47 发表评论
    ]]>
    微YDSL开始搞局UMLQ四夷同?/title><link>http://m.tkk7.com/calvin/archive/2005/12/07/22914.html</link><dc:creator>江南白衣</dc:creator><author>江南白衣</author><pubDate>Wed, 07 Dec 2005 13:35:00 GMT</pubDate><guid>http://m.tkk7.com/calvin/archive/2005/12/07/22914.html</guid><wfw:comment>http://m.tkk7.com/calvin/comments/22914.html</wfw:comment><comments>http://m.tkk7.com/calvin/archive/2005/12/07/22914.html#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://m.tkk7.com/calvin/comments/commentRss/22914.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/calvin/services/trackbacks/22914.html</trackback:ping><description><![CDATA[   作者:<A ><FONT color=#366900>江南白衣</FONT></A> <BR><BR>   今天CSDN的头条是微YDSL 对决 UMLQ虽然不是什么新MQ但q是很开心。因为我实在很不喜欢ZUML2.0的所谓MDA?BR>    <STRONG>某h_世界上没有无~无故的爱,却有无缘无故的恨Q尤其在|络上?/STRONG><BR>    所以我很不喜欢UML三友?BR>    因ؓ(<A >非鱼</A>批:不是说无~无故么?) UML中除了Class图、顺序图、交互图Q其他如部v图之cȝQ根本就是急就章,估计也就׃三友宝贵的十分钟设计出来的,也没多大用处。而Class囑֒序图,换作怽看官Q回家憋几天也能设计Z八九不离十的式样出来。就q么点东西,值得捧到高高的神坛上坐这么久不下来么Q?BR><BR>    <STRONG>W二不喜Ƣ基于UML的MDA?/STRONG>UML作ؓ沟通工兯好,但想用tagged value表达整个pȝ作ؓ代码生成的依据,像xXML来描q整个商业系l、商业逻辑一栗看q些q来Q工具开发商费了这么多人月Q除了实际帮了不研I生的毕业论文外Q再没多成果了。(那些有限的生成效果,随便一个xml文g或者PowerDesigner攑ּ手脚做一下也不差多少)<BR><BR>    但就是这个三友和UMLQ把业界向更高一U语aq进的希望死ȝ在一辆战车上一l就是好几年Q?STRONG>现在l于有一个出来搞局的了</STRONG>Q而且q是手臂__大的微软,pSpring 搞了EJB2的局一P怎不叫我q种蛮夷拍手叫好Q?nbsp;<BR>    甚至不用微软的设计最后是否成?不过开发领域,微Yq没有过完全p|的?Q只要把局搞ؕQ我很高兴。何况,我也是个DSL爱好者?img src ="http://m.tkk7.com/calvin/aggbug/22914.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/calvin/" target="_blank">江南白衣</a> 2005-12-07 21:35 <a href="http://m.tkk7.com/calvin/archive/2005/12/07/22914.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学Geronimo玩票式的用开源Y件组装AppServerhttp://m.tkk7.com/calvin/archive/2005/12/05/22528.html江南白衣江南白衣Mon, 05 Dec 2005 03:30:00 GMThttp://m.tkk7.com/calvin/archive/2005/12/05/22528.htmlhttp://m.tkk7.com/calvin/comments/22528.htmlhttp://m.tkk7.com/calvin/archive/2005/12/05/22528.html#Feedback5http://m.tkk7.com/calvin/comments/commentRss/22528.htmlhttp://m.tkk7.com/calvin/services/trackbacks/22528.html作者:江南白衣 

    昨天看J2EE 5规范的时候,八卦看了下如果自pl装一个Application Server需W合的规范:
    EJB容器:
    Enterprise JavaBeans (EJB) 3.0 (JSR-220)
    Java Message Service (JMS) 1.1
    Java Transaction API (JTA) 1.1
    Java Authorization Service Provider Contract for Containers (JACC) 1.1
    Java Platform, Enterprise Edition Management API 1.1  (JSR-77)
    Java Platform, Enterprise Edition Deployment API 1.2
    Java EE Connector Architecture 1.5

    Web:
    JavaServer Faces 1.2 (JSR-252)
    Servlet 2.5
    JavaServer Pages (JSP) 2.1
    Standard Tag Library for JavaServer Page  (JSTL) 1.2 (JSR-52)

    Web Services:
    JavaAPI for XML Web Services (JAX-WS) 2.0
    JavaArchitecture for XML Binding (JAXB) 2.0 (JSR-222)
    Web Services Metadata for the Java Platform 1.1 (JSR-181)
    Web Services for Java EE 1.2 (JSR-109)
    Java API for XML-based RPC (JAX-RPC) 1.1
    SOAP with Attachments API for Java (SAAJ) 1.3
    Java API for XML Registries (JAXR) 1.0

    Other:
    JavaMail 1.4
    JavaBeans Activation Framework 1.1
    Streaming API for XML (StAX) 1.0  (JSR-173)
    Common Annotations for the Java Platform 1.0 (JSR-250)
    Debugging Support for Other Languages (JSR-45) 

    再看Geronimo的做法,不由觉得好好W,它居然玩式的组了一队开源Y件来应付q些规范(不过止应付到J2EE1.4)Q?BR>
    1.Tomcat/Jetty Q应付了Web斚w的Servlet 2.5 、JSP、JSTL?BR>
    2.Axis包了WebService斚w的所有东西,Apache scout包JAXR?BR>
    3.OpenEJB 应付  EJB2.1Q这是整个链条里最勉强的部分。另外它也准备EJB3的开发了?BR>
    4. ActiveMQJMSQ?A >MX4JJMXQ?A >JOTM事务,HOWL作事务日志?BR>
    5.WADI - a clustering, load-balancing and fail-over solution
    具体L ?A class=fbox >GeronimoQ第 2 部分: 驯服 J2EE 1.4 q匹野马?BR>
    除了上述规范Q?A >Geronimoq整合了Spring和支持JBI?A >ServiceMixQ一qC50多个开源项目,几乎?A >ApacheQ?A >CodeHaus上的目一|打,伯乐q而北空了。这h大旗建AppServer的方式,的确打破了某U市场状态,模糊了Application Server的界限,好好玩?BR>
    Geronimoq种疯狂整合靠的是它的GBean架构Q具体看?A class=fbox >第三方lg集成?Geronimo ?/FONT>》,而GBean之间的引用和交互Q则?A >cglib生成的动态代理。有旉要具体学习一下这U全包容的架构,不知是先q还是落后?BR>
    PS . TSS 最q两天的三条消息
    1.Terracotta announces Clustered Spring Runtime --Terracotta 为Spring加入了集能力?BR>2.JBoss adds Arjuna transaction engine -- Jboss整合了原来HP旗下BlueStone AppServer的事务技术,支持WebService事务?BR>3.jManage 1.0, JMX client, released-- 一个有Web?q点比Mx4J好啊)和Console版的JMX client?BR>
    传统Applicaton Server供应商的日子来不好过了?BR>


    江南白衣 2005-12-05 11:30 发表评论
    ]]>
    又到预测Ӟwhat will be cool in 2006?http://m.tkk7.com/calvin/archive/2005/12/04/22390.html江南白衣江南白衣Sat, 03 Dec 2005 18:49:00 GMThttp://m.tkk7.com/calvin/archive/2005/12/04/22390.htmlhttp://m.tkk7.com/calvin/comments/22390.htmlhttp://m.tkk7.com/calvin/archive/2005/12/04/22390.html#Feedback10http://m.tkk7.com/calvin/comments/commentRss/22390.htmlhttp://m.tkk7.com/calvin/services/trackbacks/22390.html江南白衣 

    2005p样完了,ONJava的年lȝ: 2005 Year in Review?BR>TSSq初开会时讲得专家们自己都开始有点厌倦的EJB3QJSF1.2QAjaxQAOP的三宗合一QSOA和ESBQGroovyQ还是没有一个stable的东西出来?BR>
    眼看2006Q又是l将q些话题变成产品的一q_让我们l讨论厌烦:

    *Full stack Application Framework: Spring 2.0  
      Spring 2.0吚w会兼FB大会刚刚开q。夜观星象,Spring气数未尽Q开源社区里也只它有资格不断整合别h?BR>  另一个Stack名曰RIFEQ不q比较独?BR>  另外QJBoss搜刮的JEMS (JBoss Enterprise Middleware)和JSF+EJB3?A >Seam也会l箋发音?BR>
    *Web FrameworkQJSF 1.2
     
     最怕别人问现在开目用哪个Framework好,选来选去暂时q是投靠标准好了?BR>  不知?A >Struts TiQ?A >Struts ShaleQSpring MVC?006会怎样?BR>   而Continuationsq个名词明年也许会闪亮一下?BR>
    *Persist FrameworkQ?Hibernate 3.1 (EJB3/JPA1) 
      ?A >RoR的Active Record刺激下,annotaion 和default mappingl究要替代xml描述文g?BR>   另外Q除了麻烦的ORMQ也很希望有一个极的JDBC FrameworkQ不知道JDBC4.0和Spring跑JDK1.5的SimpleJdbcTemplate什么样子?BR>
    *Web Service FrameworkQ?/STRONG>XFire (JAX-WS2.0、JAXB 2.0)
      SOA 风潮下的next-generation SOAP FrameworkQ支持JavaEE 5的JAX-WS2.0、JAXB 2.0与annotationQ还拖上?A >Spring的手?BR>  Axis的事实标准地位该不保了吧?BR>
    *JBI-ESBQ?/STRONG>ServiceMix 
      2006q的新大热名?-JBI(Java Business Intergrade)与ESB(Enterprise Service Bus)?BR>
    *Java Rule Engine与JDM 2.0Q?/STRONG>Drools
       Rule Engine和Data Mining 已经说了很久Q不知道明年又如何。但Drools则演l了一条标准的成名路:
       1.先入CodeHaus再入Jboss
       2.Q号Uͼ集成Spring
       3. 提供Eclipse的插?BR>
    *动态语a嵌入Q?/STRONG>Groovy 
      期待在Ruby的不断刺Ȁ下,1.0正式版发布后的正式用家?BR>
    *some Ajax Framework
       Buffalo, Prototype, Dojo, MochiKit, DWR h之下总该有脱颖而出者吧Q?BR>
    *AOP三宗归一
      虽然大家q很在应用中用它QAOP在Spring 中的作用却非常明显。不知道Spring2.0是否可以三宗归一Q给Z个框架设计时使用的简单方案?BR>

    江南白衣 2005-12-04 02:49 发表评论
    ]]>
    Java Web Alignment Group成立与WebWork-Struts合ƈhttp://m.tkk7.com/calvin/archive/2005/11/30/22005.html江南白衣江南白衣Wed, 30 Nov 2005 09:05:00 GMThttp://m.tkk7.com/calvin/archive/2005/11/30/22005.htmlhttp://m.tkk7.com/calvin/comments/22005.htmlhttp://m.tkk7.com/calvin/archive/2005/11/30/22005.html#Feedback18http://m.tkk7.com/calvin/comments/commentRss/22005.htmlhttp://m.tkk7.com/calvin/services/trackbacks/22005.html江南白衣 

      今天的一条八卦,在Asp.net 2.0?A href="/calvin/archive/2005/11/22/20938.html">Railsp?/A> RoR/DJango/Turbogears的两面夹MQJava Web Framework的大佬们l于看到狼来了,坐下来,吃个包,开始商量合作?BR>   消息在TSSȝDion Almaer的Blog上看刎ͼ再看q个Java Web Alignment Group Q果焉定w盛,36个MemberQ江湖上大部分大佬都到齐了?A >Yahoo Group免费参观Q不q他?005.11.10号开始就已经没有贴子---歇菜了?BR>
    Framework Group Members
    Beehive Rich Feit
    AppFuse Matt Raible
    JavaServerFaces Ed Burns, Kito Mann, Craig McClanahan, Roger Kitain, Jacob Hookom, James Mitchell, Adam Winer
    MyFaces Bill Dudney, Ted Husted, James Mitchell, Travis Reeder
    Seam Gavin King, Jacob Hookom
    RIFE Geert Bevin, JR Boyens, Keith Lea
    Spring MVC and Web Flow Alef Arendsen, Keith Donald
    Stripes Tim Fennell
    Struts Classic Don Brown, Ted Husted, James Mitchell, Hubert Rabago, Niall Pemberton
    Struts Shale Craig McClanahan
    Struts Ti Don?, Rick?, Patrick?, James?
    WebWork Patrick Lightbody
    Wicket Eelco Hillenius

       上面的名单已成历Ԍ唯一有趣的是Tapestryq不在列?BR>   q个Group的最后成果就是Struts和Webwork上演了一Z的名字我的名字的Struts Ti ?--"以Struts为名字,Webwork为核心,加上Beehive的annotataion和pageflowQ再提升与JSF的集成能?。可惜Spring MVC暂时不会加入Q而JSFpd何合q还未知。最期待的,是它的Phase 2--zero congfig file?/SPAN>


    江南白衣 2005-11-30 17:05 发表评论
    ]]>
    OpenLaszlo 3.1发布--重拾几乎遗忘的RIA理想http://m.tkk7.com/calvin/archive/2005/11/29/21806.html江南白衣江南白衣Tue, 29 Nov 2005 04:23:00 GMThttp://m.tkk7.com/calvin/archive/2005/11/29/21806.htmlhttp://m.tkk7.com/calvin/comments/21806.htmlhttp://m.tkk7.com/calvin/archive/2005/11/29/21806.html#Feedback6http://m.tkk7.com/calvin/comments/commentRss/21806.htmlhttp://m.tkk7.com/calvin/services/trackbacks/21806.html  作者:江南白衣   

      一q前QRIA新浪潮?BR>  1.以新的Web控g代替复杂dhtmlҎ件的模拟Q?BR>  2.以重qC/S的用户体验代替传lhttp的提?q回模式Q开发模式上甚至可以直接调用商业对象?BR>  RIA一出现尽h心。但QFlex因ؓ收费QXUL因ؓl端QXAML因ؓ无期QOpenLaszlo因ؓn与性能.......渐渐退Z大家的嘴边,他们也的不争气Q又一q过MQ都没再弄出大的声响?BR>
      q一q大家做什么呢Q是忽然走红的ajaxQ来实现RIA中不h面的承诺,q有高?A >DWRQ?A >JSON-RPCQ同样实现RIA中对商业对象的直接调用?BR>  之前?A >ECHO2Q而最q出现的一个框架叫ZK1Q开发h员用XUL来开发,然后臂大力雄的框架会把XUL渲染成dhtml+ajaxQ算是一U有的思\?BR>   但我q是觉得Q浏览器应该升Q而不是靠复杂的dhtml+ajax来模拟,我是革命z,不是改良z,相对于全体民众花在模拟上的成本,览器的升要简单得多?BR>
      前几天因为想在blog上弄点小花样Q去了基于OpenLaszlo?A >blogbox。再回头Q发现OpenLaszlo已经发布?.1版本?BR>
      OpenLaszlo 3.1版本升良多Q已解决性能与中文问题?/STRONG>
      *新版本可以编译ؓFlash 6??的格式,性能上突飞猛q,不再是以前吃资源的巨怪?BR>  *支持UnicodeQ支持中文了?BR>  *支持SOLO deploy了,也就是不再要求Servlet ContainerQ也可以deploy到IIS和Apache?BR>  其他q有Drawing APIQCharting ComponentsQDynamic LibrariesQAjax API{一pd升?BR>
     OpenLaszlo3.1的编E体?BR> 1.不愧曾是.com的物,在Windows 下点了两下nextp完了Q而且已有了整套的开发环境,10U钟之后Q我开始在my-apps目录写我的helloworld.lzxQ然后刷新页面看l果?BR> 
     2.XML格式的控件定义,JavaScript作ؓ脚本语言Q再加上完备的tutorial、reference文档和demo codeQ又?A href="/calvin/archive/2005/11/18/20403.html">wxWidgets那样Q基本上没什么特别要学的东西Q直接可以开始编码了?BR>
     3.Z么RIA要比模拟RIA要好Q?BR> 开两点之外,OpenLaszloq可以自由定义控件的layoutQ比用table、div的做法自由?BR> 另外QOpenLaszloq可以简单的利用现有控gQ定义新的控件和式样?BR>
     对OpenLaszlo有不满意吗?
      有阿Q用L太。还有控件的默认式样也比Flex的差一截,虽说可以自己customizeQ但不是每个人都那么有空的呀。还有那?A >IBM友情客串的IDEQ啥时候才弄得像个样嘛?BR>
      Flex ,XUL又在做什么?
      Flex2 摆出的阵仗显然胜于OpenLaszloQ?BR>  Flex Framework 2, Flex Builder 2,Flex Enterprise Services 2,Flex Charting Components 2
      但,公无收费Q公竟收费,&*(^%Q当奈公何?BR>
      XUL呢,新出的Firefox1.5只是Firefox1.0的补完,看不出FF2.0的痕q,一q了?/P>

    江南白衣 2005-11-29 12:23 发表评论
    ]]>
    Java下的框架~程(5)--cglib的应?http://m.tkk7.com/calvin/archive/2005/11/28/21741.html江南白衣江南白衣Mon, 28 Nov 2005 14:49:00 GMThttp://m.tkk7.com/calvin/archive/2005/11/28/21741.htmlhttp://m.tkk7.com/calvin/comments/21741.htmlhttp://m.tkk7.com/calvin/archive/2005/11/28/21741.html#Feedback8http://m.tkk7.com/calvin/comments/commentRss/21741.htmlhttp://m.tkk7.com/calvin/services/trackbacks/21741.html江南白衣 

       反射、Proxy和元数据是Java最强的三个特征Q再加上CGLib (Code Generation Library)和ASMQ得Java虽然没有RubyQPython般后生可畏,一栯做出强悍的框架?br />   Proxy可以看作是微型的AOPQ明白提供了在承和委托之外的第三个代码装途径Q只要有_的想象力Q可以做得非常好玩,Spring的源码里用Proxyq得很随便Q看得我非常眼红。可惜Proxy必须Z接口。因此Spring的做法,Z接口的用proxy,否则qcglib。AOP么,一般小事非compoent一U的׃ȝAspectJ出手了?br />
        cglib的Enhancer说v来神奇,用v来一늺不到p完了?br />    它的原理是用Enhancer生成一个原有类的子c,q且讄好callback到proxyQ?则原有类的每个方法调用都会{用实CMethodInterceptor接口的proxy的intercept() 函数Q?br />
    public Object intercept(Object o,Method method,Object[] args,MethodProxy proxy)

     在intercept()函数里,你可以在执行Object result=proxy.invokeSuper(o,args);来执行原有函敎ͼ在执行前后加入自q东西Q改变它的参数|也可以瞒天过P完全q别的。说白了Q就是AOP中的around advice?

        AOP没有出现以前Q该领域l典的设计模式是DecoratorQ像Java IO Stream的设计就是如?不过Q如果ؓ每个DAO, 每个Ҏ的写Decorator函数会写Mh的,所以用上cglib的好处是一ơ过拦截所有方法。?br />
         另外Qcglib除了Enhancer之外Q还有BulkBean和TransformQ都是Hibernate持久化的基础Q但文档贫乏Q一时还没去看怎么用?br />
    1.AOP里讲了一N阿一N的log aspect在cglib是这样做?


       
    public class LogDAOProxy implements MethodInterceptor
       {
           
    private Logger log=Logger.getLogger(LogDAOProxy.class);
           
    private Enhancer enhancer=new Enhancer();
            
    //q回DAO的子c?/span>
           public Object getDAO(Class clz)
           {
               enhancer.setSuperclass(clz);
               enhancer.setCallback(
    this);
               
    return enhancer.create();
           }
           
    //默认的拦截方?/span>
          public Object intercept(Object o,Method method,Object[] args,MethodProxy proxy) throws Throwable
          {
               log.info(
    "调用日志Ҏ"+method.getName());
               Object result
    =proxy.invokeSuper(o,args);
               
    return result;
          }
       }

        应用的代?
        LogDAOProxy proxy = new LogDAOProxy();
        GoodsDAO  dao 
    = (GoodsDAO)proxy.getDAO(GoodsDAO.class);
        dao.insert(goods);

    2.而在Spring的管理下应该略加修改的高UDecorator
       上面的例子用return enhancer.create();创徏子类实例Q但在Spring理下,一些Bean的实例必ȝSpring来创建和理Q而不由enhancer来创建的。所以我对上q用法略加修改,使它真正当一个Proxy的角Ԍ请对比黑体字的部?br />

      public class LogDAOProxy implements MethodInterceptor
      {
           
    private Logger log=Logger.getLogger(LogDAOProxy.class);
           
    private Object dao=null;
           
    private Enhancer enhancer=new Enhancer();
            
    //q回DAO的子c?/span>
           public Object getDAO(Class clz,Object dao)
           {
               
    this.dao = dao;
               enhancer.setSuperclass(clz);
               enhancer.setCallback(
    this);
               
    return enhancer.create();
           }      
           
    //默认的拦截方?/span>
          public Object intercept(Object o,Method method,Object[] args,MethodProxy proxy) throws Throwable
          {
               log.info(
    "调用日志Ҏ"+method.getName());
               Object result
    =proxy.invoke(dao, args);
               
    return result;
          }
      }

    可见Q原来模式里在getDao()时由enhancer创徏daoQ而 调用intercept时则enhancer创徏的dao以Object o参数传回?br />而新模式里,dao在getDao()时从外面传入Qenhancer.create()q回的是一个proxy. 而调用interceptӞ实际会用之前传入的daoq行操作Q而忽略Object o参数传入的proxy.

    有点遗憾, intercept函数里MethodProxy的Signature是固定的 , 卛_户如果调用foo(String),你不可以用proxy.invokeh成foo(String,String);


    pd文章Q?br />Java下的框架~写(1)--?/font>
    Java下的框架~程(2)-Ҏ型的无聊用法和ؓ擦拭法站?/font> 
    Java下的框架~程(3)--关于反射的碎?/font> 
    Java下的框架~程(4)--Annotation vs XML vs Interface 最CRound 
    Java下的框架~程(5)--cglib应用
    Java下的框架~程(6)--asm(待写)

    江南白衣 2005-11-28 22:49 发表评论
    ]]>
    Java下的框架~程(4)--Annotation vs XML vs Interface 最CRoundhttp://m.tkk7.com/calvin/archive/2005/11/25/21412.html江南白衣江南白衣Fri, 25 Nov 2005 04:43:00 GMThttp://m.tkk7.com/calvin/archive/2005/11/25/21412.htmlhttp://m.tkk7.com/calvin/comments/21412.htmlhttp://m.tkk7.com/calvin/archive/2005/11/25/21412.html#Feedback4http://m.tkk7.com/calvin/comments/commentRss/21412.htmlhttp://m.tkk7.com/calvin/services/trackbacks/21412.html江南白衣 

    1.因ؓ两者的用途不同,所以Annotation与XML应该q存

     Anootation vs XML C现在Q在Spring和EJB3各占一边的持箋演示下,各自的用途已清晰?BR>   虽然两者之间完全可以相互替代,没有l对不能做的事情Q但却存在好不好的问题,两者的用途不同,应该q用Q?BR>
       "size=10Qdb_user=ito"q样的参敎ͼ仍然适合攑֜XMLQYAML(ruby)QpropertiesQini文g里?BR>    而Annotation中所放,是真正程序的一部分Q是旧编E体pM所~的那一块东ѝ?BR> 看看~程语言的发展:
        一开始只是函数的装Q?BR>    COO语言Q对象有了自q属性和ҎQ?BR>    C框架满天飞的q代Q这些属性和Ҏ又有了自q属性,来告诉框架如何ؓ自己提供服务。比如Spring和EJB3QPOJOq配置信息来告诉框架无侵入的提供服务。整个进化的q程非常自然?BR>
        因ؓq些信息本来是E序的一部分Q所以应该仍然放在Code里头QSpring把它割裂到XML明显影响了代码的阅读?BR>
    2.Anotation/XML PK InterfaceQSpring 无R入性的基础
       切尔斯基的Blog讲了Annotation/XML 对Interface的PK。这ơPKQ也可以认ؓ是Spring ?EJB2.1在框架无侵入性上的一ơPK?BR>   在EJB2.1时代QPOJO必须通过接口来向框架声明一些东西,q就造成了框架的侵入性,POJO实现一堆接口。而SpringQ把q些元信息搬CXML配置文g?BR> 在Spring里随便就可以举个例子。比如一个POJOQ在Spring为它q行依赖注入A和B后,需要根据A和B来装配一个内部属性CQ这样就需要再跑一个init()函数。Spring提供两种方式Q一UR入性的Q实现InitializingBean接口的afterPropertiesSet()函数供Spring调用?nbsp;  而另一U是无R入性的Q在Bean的xml节点里面自行定义init函数的名字?BR>
    Q?Annotation目前的弱?BR> 一是Hibernate、Struts、三姑妈、四姨婆的annotation如果一股脑儿的全堆在可怜的POJO上很没h道,如果三姑六婆都抢Transationq个Anontation更惨了?BR>    二是annoation的表达能力有限,不如XML的强?BR>
    4.JSR250 - Common Annotations for the Java
        Final Draft已经发布Q八卦回来一看,也只是多定义了几个Common Annotation而已?BR>   1.Generated  自动生成的代码要用此声明Q而且必须说明工具的名Uͼ如@Generated(“com.sun.xml.rpc.AProcessor?

       2.Resource/Resources 是EJB3里面用的资源引用?BR>
       3.PostConstruct / PreDestroy 声明那些如题的函数?BR>  
       q有一些安全方面的annotationQ不兛_?BR>

    文章Q?/STRONG>
    Java下的框架~写(1)--?/FONT>
    Java下的框架~程(2)-Ҏ型的无聊用法和ؓ擦拭法站?/FONT> 
    Java下的框架~程(3)--关于反射的碎?/FONT> 
    Java下的框架~程(4)--Annotation vs XML vs Interface 最CRound 
    Java下的框架~程(5)--cglib应用
    Java下的框架~程(6)--asm(待写)

      


    江南白衣 2005-11-25 12:43 发表评论
    ]]>
    各系Rails大点?/title><link>http://m.tkk7.com/calvin/archive/2005/11/22/20938.html</link><dc:creator>江南白衣</dc:creator><author>江南白衣</author><pubDate>Tue, 22 Nov 2005 05:16:00 GMT</pubDate><guid>http://m.tkk7.com/calvin/archive/2005/11/22/20938.html</guid><wfw:comment>http://m.tkk7.com/calvin/comments/20938.html</wfw:comment><comments>http://m.tkk7.com/calvin/archive/2005/11/22/20938.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://m.tkk7.com/calvin/comments/commentRss/20938.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/calvin/services/trackbacks/20938.html</trackback:ping><description><![CDATA[   作者:<A ><FONT color=#366900>江南白衣</FONT></A> <BR><BR>   不知道明q今日,会不会出C队只会用Ruby On Rails的毕业生Q像当年的asp、jsp、phpq速剿了C++/perl的CGI那样Q把我们l剿了。同好们劝我Q根据大公司l济学,q基本不会发生?BR><BR>    在茫茫的框架之v认出一个Rails框架Q基本上靠四个特?BR>    1.一门动态语a<BR>    2.一个extreme simple to use的ORM框架<BR>    3.一个extreme simple to use的MVC框架<BR>    4.一些自动生成代码的命o、模?BR>    其余ajax、web service、i18n{特性自由扩?BR><BR>   <STRONG>1.Ruby: <A >Ruby on Rails</A></STRONG><BR>      Railspȝ旗手Q一׃力搞得J2EE阵营鸡飞蛋打?BR>      旗手的作用表现在Q?BR>      *最接近1.0的版本,目前已出到最后一个RC?<A >1.0 rc4(0.14.3)</A><BR>      *拥有一本amazon畅销的《Agile Web Development with Rails》,而且q本书的l织也好Qpart I是一个渐q的sample application 让你快速入门,partII是几个重要领域的深入介绍?BR>      *拥有自己的IDE: <A >RadRails</A> Q基于Eclipse但独立成军,目前出到0.5?是不是怕惨了Eclipse的多变,现在q些IDE的发行版本开始反包含了Eclipse在内?<BR><BR>    <STRONG>2.Python: </STRONG><A ><STRONG>DJango</STRONG></A><STRONG>?/STRONG><A ><STRONG>turbogears</STRONG></A><BR>       认识不深Q所?A >DJango</A>L<A >limodou的blog</A>Q?A >turbogears</A>?A >xlp123?/A>?BR><BR>    <STRONG>3.Groovy: </STRONG><A ><STRONG>grails</STRONG></A><BR>       如果能顺产,l对是J2EE阵营里感情分最高涨的项目。因为它语言用GroovyQORM用annotation版HibernateQMVC用Spring。不用担心它换汤不换药,因ؓl过extreme的封装,再结合GroovyQ绝对不再是原来的Spring+HibernateQ而是和RoR差不多的一样东西了。不信可以看看他的Sample?BR>       不过q个目的源码目录树非一般的乱,也还没有0.1版释出。还有一样奇怪的事情Q这个Groovy目Q大多数的class代码都是Java写的?BR><BR>    <STRONG>4.Php: </STRONG><A ><STRONG>symfony</STRONG></A><STRONG> ,</STRONG><A ><STRONG>cake</STRONG></A><BR>       据说<A >cake</A>?A >symfony</A>弱非常多Q所以没看?BR>       symfonys是基于php5的项目,成功整合?A >Propel</A>(ORM)?A >Mojavi3</A>(MVC)Q再配合自动生成的脚本打造而成。看他的sampleQ最后整合出来的东西也很Rails了,除了ORM层的xml文g?BR>        q有一个发现是Php目现在可以用pear来安装,很像Ruby的gemQJava的Maven要努力了?BR> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">C:/>pear channel</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">discover pear</SPAN><SPAN style="COLOR: #000000">.</SPAN><SPAN style="COLOR: #000000">symfony</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">project</SPAN><SPAN style="COLOR: #000000">.</SPAN><SPAN style="COLOR: #000000">com <BR>C:/>pear install symfony</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">symfony</SPAN></DIV>        q样p完了symfonys和propel&croel, mojavi3,q有用来q行脚本命o的pake(php make)QPHing(php ant?)Q一大堆东西?BR><BR><img src ="http://m.tkk7.com/calvin/aggbug/20938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/calvin/" target="_blank">江南白衣</a> 2005-11-22 13:16 <a href="http://m.tkk7.com/calvin/archive/2005/11/22/20938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://qiwangxuan.com" target="_blank">avһ</a>| <a href="http://zhuanjiao521.com" target="_blank">˵һ</a>| <a href="http://jst-hosp.com" target="_blank">AV뾫Ʒ</a>| <a href="http://znboxcdn107.com" target="_blank">˾ҹƵѹ</a>| <a href="http://shbailongma.com" target="_blank">Ƶ</a>| <a href="http://31xyz.com" target="_blank">޸Ƶ</a>| <a href="http://appmofun.com" target="_blank">99reѾƷƵۿ </a>| <a href="http://paweax.com" target="_blank">޹Ʒþ</a>| <a href="http://8b22.com" target="_blank">ŮƵ</a>| <a href="http://zg8k.com" target="_blank">޴Ů߹ۿ</a>| <a href="http://27simnjingmiguan.com" target="_blank">ѹۿavëƬվ</a>| <a href="http://mironpress.com" target="_blank">ŷպ</a>| <a href="http://wua72.com" target="_blank">պѵӰ߹ۿ</a>| <a href="http://747767.com" target="_blank">˳ӰԺ</a>| <a href="http://yy9977.com" target="_blank">޾ƷƵѹۿ</a>| <a href="http://lanchenews.com" target="_blank">Ʒ99Ƶ</a>| <a href="http://as5566.com" target="_blank">޹Ʒ˾Ʒ</a>| <a href="http://phlinhng.com" target="_blank">ƬվɫƬѹۿAPP</a>| <a href="http://lanoss.com" target="_blank">avƷɫҹĻ </a>| <a href="http://www9k832.com" target="_blank">޾Ʒtvþþþþþþ</a>| <a href="http://800141.com" target="_blank">ˬִ̼һ߳</a>| <a href="http://zengzeyu.com" target="_blank">AVһҳƷ</a>| <a href="http://941sese.com" target="_blank">91þó</a>| <a href="http://51comcomcom.com" target="_blank">ĻAVJI</a>| <a href="http://556228.com" target="_blank">ĻӰѹۿ</a>| <a href="http://wbkk88.com" target="_blank">һƵ</a>| <a href="http://987566.com" target="_blank">av乾</a>| <a href="http://sznsfe.com" target="_blank">2022ĻƵ</a>| <a href="http://857434.com" target="_blank">18߹ۿ</a>| <a href="http://www50884.com" target="_blank">Ļѹۿ</a>| <a href="http://www676617.com" target="_blank">վѹۿ</a>| <a href="http://ningxialanh.com" target="_blank">С˵ͼƬ</a>| <a href="http://slotvip24.com" target="_blank">߲Ƶ</a>| <a href="http://cangtuyuan.com" target="_blank">jŮjڲվ</a>| <a href="http://xxxxcccc.com" target="_blank">޹˾Ʒ벥</a>| <a href="http://4001120002.com" target="_blank">ɫavѹۿ</a>| <a href="http://tzfzs.com" target="_blank">йһػƸѵĴƬйһɫƬ </a>| <a href="http://abab14.com" target="_blank">Ƶѹۿ</a>| <a href="http://da666f.com" target="_blank">޾ƷAAAAƬAPP</a>| <a href="http://97aimeili.com" target="_blank">˳7777777</a>| <a href="http://bdyls.com" target="_blank">ɫһ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>