﻿<?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-Thinking in sky-随笔分类-J2EE框架</title><link>http://www.blogjava.net/hh-lux/category/18226.html</link><description>－－老贺的BLOG</description><language>zh-cn</language><lastBuildDate>Fri, 24 Aug 2007 18:14:32 GMT</lastBuildDate><pubDate>Fri, 24 Aug 2007 18:14:32 GMT</pubDate><ttl>60</ttl><item><title>简化Spring(4)--View层</title><link>http://www.blogjava.net/hh-lux/archive/2007/08/24/139053.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Fri, 24 Aug 2007 02:50:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2007/08/24/139053.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/139053.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2007/08/24/139053.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/139053.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/139053.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 人生像个舞台，请良家少女离开。<br>    同样的，Freemarker和Velocity爱好者请跳过本篇。与弃用webwork而单用Spring MVC Controller接口的理由一样，Freemarker本来是一样好东西，还跨界支持jsp 的taglib，而且得到了WebWork的全力支持，但为了它的非标准化，用户数量与IDE的缺乏，在View层我们还是使用了保守但人人会用，IDE友好的JSP2.0 配合JSTL。<br><br>    对于B/S结构的企业应用软件来说，基本的页面不外两种，一种是填Form的，一种是DataGrid 数据列表管理的，再配合一些css, js, ajax的效果，就是View层要关注的东西了。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/hh-lux/archive/2007/08/24/139053.html'>阅读全文</a><img src ="http://www.blogjava.net/hh-lux/aggbug/139053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2007-08-24 10:50 <a href="http://www.blogjava.net/hh-lux/archive/2007/08/24/139053.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>web开发中的分层原则和各层之间的数据传递问题 </title><link>http://www.blogjava.net/hh-lux/archive/2007/08/24/139044.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Fri, 24 Aug 2007 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2007/08/24/139044.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/139044.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2007/08/24/139044.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/139044.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/139044.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 目前的Web Application大多采用流行的基于B/S模式的三层架构开发，这里的三层架构指的就是Web层、业务层和数据访问层。采用分层的开发方式有很多好处，下面只简单地来说两点：<br><br>　1：分层开发使不同的开发人员关注他们擅长的特定层面，有助于开发优质的系统。因为很少有程序员可以精通从JS，CSS，DHTML到struts再到 hibernate直至最后的数据库设计这一整套开发流程所要使用到的所有技术。大家各司其职，全力关注自己擅长的层面，这要比一个人或一个小组负责某一模块从页面到最底层的开发方式要好的多。<br><br>　2：.分层分离了逻辑，使得系统结构层次明晰，系统变得灵活和易于维护。开发人员应该尽量使系统的各层之间保持相对独立的松耦合状态，这是实现分层的必要条件，也是构建良构系统的重要保证。<br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/hh-lux/archive/2007/08/24/139044.html'>阅读全文</a><img src ="http://www.blogjava.net/hh-lux/aggbug/139044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2007-08-24 10:37 <a href="http://www.blogjava.net/hh-lux/archive/2007/08/24/139044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简化Spring(3)--Controller层</title><link>http://www.blogjava.net/hh-lux/archive/2007/08/24/139040.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Fri, 24 Aug 2007 02:23:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2007/08/24/139040.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/139040.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2007/08/24/139040.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/139040.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/139040.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Struts与Webwork的扇子请跳过本篇。<br><br>    MVC不就是把M、V、C分开么？至唯物朴素的做法是两个JSP一个负责View，一个负责Controller，再加一个负责Model的Java Bean，已经可以工作得很好，那时候一切都很简单。<br>    而现在为了一些不是本质的功能，冒出这么多非标准的Web框架，实在让人一阵郁闷。像Ruby On Rails那样简捷开发，可用可不用，而且没有太多的限制需要学习的，比如Webwork这型还可以考虑。但像Struts那样越用框架越麻烦，或者像Tapestry那样有严重自闭倾向，额上凿着"高手专用玩具"的，用在团队里就是不负责任的行为了。<br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/hh-lux/archive/2007/08/24/139040.html'>阅读全文</a><img src ="http://www.blogjava.net/hh-lux/aggbug/139040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2007-08-24 10:23 <a href="http://www.blogjava.net/hh-lux/archive/2007/08/24/139040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简化Spring(2)--Model层</title><link>http://www.blogjava.net/hh-lux/archive/2007/08/24/139023.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Fri, 24 Aug 2007 01:58:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2007/08/24/139023.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/139023.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2007/08/24/139023.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/139023.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/139023.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:  因为Spring自带的sample离我们的实际项目很远，所以官方一点的model层模式展现就靠Appfuse了。<br><br>    但Appfuse的model层总共有一个DAO接口、一个DAOImpl类、一个Service接口、一个ServiceImpl类、一个DataObject.....大概只有受惯了虐待的人才会欣然接受吧。<br>    另外，Domain-Driven逢初一、十五也会被拿出来讨论一遍。<br><br>    其实无论什么模式，都不过是一种人为的划分、抽象和封装。只要在团队里理解一致，自我感觉优雅就行了。<br>     我的建议是，一开始DO和Manager一生一旦包演全场，DO作为纯数据载体，而Manager类放置商业方法，用 getHibernateTemplate()直接访问数据库，不强制基于接口编程。当某天系统复杂到你直觉上需要将DAO层和Service层分开时，再分开就好了。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/hh-lux/archive/2007/08/24/139023.html'>阅读全文</a><img src ="http://www.blogjava.net/hh-lux/aggbug/139023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2007-08-24 09:58 <a href="http://www.blogjava.net/hh-lux/archive/2007/08/24/139023.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简化Spring(1)--配置文件</title><link>http://www.blogjava.net/hh-lux/archive/2007/08/24/139020.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Fri, 24 Aug 2007 01:54:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2007/08/24/139020.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/139020.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2007/08/24/139020.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/139020.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/139020.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 人人都爱Spring加Hibernate。<br>         但Spring MVC+hibernate的Sample如Appfuse的代码却算不得最简洁优美好读，如果在自己的项目中继续发挥我们最擅长的依样画葫芦大法，美好愿望未必会实现。 <br>     所以，Pramatic精神不灭。这个系列就是探寻最适合自己的Spring+Hibernate模式。<br>    <br>                              I-配置文件简化 <br><br>     我厌倦一切配置文件繁重的框架。 <br>     最好的情况是，框架提供极端灵活复杂的配置方式，但只在你需要的时候。<br> <br>     Spring提供了三种可能来简化XML。随着国内用户水平的提高，这些基本的简化技巧大家都已掌握。<br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/hh-lux/archive/2007/08/24/139020.html'>阅读全文</a><img src ="http://www.blogjava.net/hh-lux/aggbug/139020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2007-08-24 09:54 <a href="http://www.blogjava.net/hh-lux/archive/2007/08/24/139020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WTP安装实践</title><link>http://www.blogjava.net/hh-lux/archive/2007/07/20/131443.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Fri, 20 Jul 2007 04:35:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2007/07/20/131443.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/131443.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2007/07/20/131443.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/131443.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/131443.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 为了装wicket，必须先装WTP，只是没想到安装WTP这么麻烦，费了一番周折。<br><br>1. 下载EMF、GEF、JEM、WTP。<br>     其中前面三个是安装WTP所必须要先装的，不然只装一个WTP是没有用的。这四个都可以在Eclipse的官网上找到。对应的版本关系如下：<br>     eclipse 3.2：EMF 2.2、GEF 3.2、JEM 1.2、WTP 1.5<br>       eclilpse 3.3：EMF 2.3、GEF 3.3、JEM 1.5、WTP 2.0<br>    <br>&nbsp;&nbsp;<a href='http://www.blogjava.net/hh-lux/archive/2007/07/20/131443.html'>阅读全文</a><img src ="http://www.blogjava.net/hh-lux/aggbug/131443.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2007-07-20 12:35 <a href="http://www.blogjava.net/hh-lux/archive/2007/07/20/131443.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web 显示层技术评估 </title><link>http://www.blogjava.net/hh-lux/archive/2007/07/18/131129.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Wed, 18 Jul 2007 10:05:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2007/07/18/131129.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/131129.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2007/07/18/131129.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/131129.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/131129.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本文讨论的范围只包括采用 HTML Template 的显示层技术，不包括 Echo ， GWT(google web toolkit) 等根据代码产生 HTML 的工具。 <br><br>本文主要讨论 Server Side ( 针对 Java Language) 的显示层技术，然后进一步讨论 Browser Side （ Ajax ）的显示层技术（一个典型的 Ajax 应用也分为 Model, View, Controller – Data, HTML/CSS, JavaScript ）。注意，本文关于 Ajax 的讨论只有很少一部分，因为我不擅长这个领域。只是一个顺便的扩展比较。 <br><br>一个很有趣的现象。 Server Side 和 Browser Side 的显示层技术格局恰好相反。 Server Side 的 Scripted Template 技术比较多，比较流行；而 Browser Side 的 HTML DOM Manipulation 技术、 HTML View Model 技术比较多，比较流行。 <br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/hh-lux/archive/2007/07/18/131129.html'>阅读全文</a><img src ="http://www.blogjava.net/hh-lux/aggbug/131129.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2007-07-18 18:05 <a href="http://www.blogjava.net/hh-lux/archive/2007/07/18/131129.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dorado学习心得(持续更新)</title><link>http://www.blogjava.net/hh-lux/archive/2007/05/16/117766.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Wed, 16 May 2007 01:35:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2007/05/16/117766.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/117766.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2007/05/16/117766.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/117766.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/117766.html</trackback:ping><description><![CDATA[Dorado确实是很创意的产品，最近在边学边用，把一些心得记录下来以便以后好查。<br><br>1. 在客户端调用dataset1.flushData()时，会到服务端调用该ViewModel实现类的doLoadData()，如果doLoadData()方法里还有其它Dataset，如<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"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">Dataset&nbsp;dataset2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;getDataset(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">dataset2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>Dataset&nbsp;dataset3&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;getDataset(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">dataset3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;这个时候，就得不到除dataset1以外的任何dataset，也就是说dataset1和dataset2为null <br><br><br>2. 在客户端，dataset.setValue("str")方法会再次触发afterChange事件，如果在afterChange里直接调用dataset.setValue()将产生死循环，应该:<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"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>//disableEvents：禁止数据集触发用户事件&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>dataset.disableEvents();&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>dataset.setValue("contractStatus",1);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>//enableEvents：允许数据集触发用户事件&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>dataset.enableEvents();&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></div>
<img src ="http://www.blogjava.net/hh-lux/aggbug/117766.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2007-05-16 09:35 <a href="http://www.blogjava.net/hh-lux/archive/2007/05/16/117766.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse不支持JDK5新特性？</title><link>http://www.blogjava.net/hh-lux/archive/2007/05/15/117568.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Tue, 15 May 2007 05:13:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2007/05/15/117568.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/117568.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2007/05/15/117568.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/117568.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/117568.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 因为中毒，重装了系统和环境，导入项目后，所有使用泛型和ForEach的地方全部报错，晕了，重装系统前是好好的，JDK也是1.5版本，网上查了下，原来是Eclipse配置的问题，Preferences--&gt;Java--&gt;Compiler里，Compiler compliance level一项为1.4，改成5.0就对了。
<img src ="http://www.blogjava.net/hh-lux/aggbug/117568.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2007-05-15 13:13 <a href="http://www.blogjava.net/hh-lux/archive/2007/05/15/117568.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AppFuse学习笔记(2)--Ant中Target的依赖关系(AppFuse的部署过程)</title><link>http://www.blogjava.net/hh-lux/archive/2007/01/03/91567.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Wed, 03 Jan 2007 08:18:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2007/01/03/91567.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/91567.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2007/01/03/91567.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/91567.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/91567.html</trackback:ping><description><![CDATA[
		<p>似乎没什么必要研究ANT到底为AppFuse干了些什么，但为了了解AppFuse的大体框架，也顺便学习下布署应用程序的一些过程或者规范，我觉得还是研究一下比较好。<br /><br />build.xml中target数量很多，而且之间的依赖关系复杂，有必要做个整理。我现在只是把所有target的关系理清了一下，至于每个target里面每一步的操作以后再来看。<br /><br />AppFuse的target依赖关系图(以下都是target的name，箭头表示后者依赖于前者)<br /><br />-init --&gt; prepare --&gt; copy-resources --&gt; <br />                                                               stage-web  --------------------------------------&gt; <br />                        --&gt; copy-web-files  --&gt; <br />                        --&gt; compile-dao --&gt; package-dao --&gt; compile-service --&gt; package-service --&gt; compile-web --                                                             &gt;  webdoclet --&gt; jsp-2 --&gt; compile-jsp --&gt; deploy-web<br />                                                                                                                          --&gt; package-web --&gt; war<br />                                                                                                                                                    --&gt; deploy<br />                                                                                                                                                    --&gt; deploy-war<br />                                                                                                                                                    --&gt; install<br />                         --&gt; gen-forms ----------------------------------------------------------------&gt; <br />                         --&gt; db-export<br />                         --&gt; db-load<br />                         --&gt; java2html --&gt; javadoc<br />                         --&gt; checkstyle<br />                         --&gt; pmd<br />       --&gt; db-create <br />       --&gt; setup-tomcat<br />       --&gt; fixcrlf<br /><br />- test-reports --&gt; deploy-test-reports<br />- test-all-running<br />- ping-tomcat<br />- db-prepare<br />- db-drop<br />- undeploy<br />- emma<br />- todo<br />- with-debug --&gt; <br />         check-debug --&gt; start.tomcat<br />- no-debug   --&gt; <br />-remove<br />-reload<br />-start<br />-drop<br />-list<br />-wiki  --&gt; <br />                dist<br />-clean --&gt; </p>
		<p> </p>
		<p>*************************************************************</p>
		<p>其余的target</p>
		<p>webdoclet    --&gt; <br />db-load        --&gt;      test-web     --&gt; <br />check-debug --&gt; </p>
		<p>copy-resources --&gt; <br />package-dao    --&gt; <br />db-load            --&gt;  test-dao     --&gt; <br />check-debug    --&gt;  <br />                                                        test-all <br />copy-resources --&gt; <br />compile-service --&gt; test-service --&gt; <br />check-debug     --&gt; </p>
		<p>war               --&gt; <br />                               test-jsp       --&gt; <br />check-debug --&gt; </p>
		<p> </p>
		<p>db-create   --&gt; <br />db-prepare --&gt; setup-db<br />db-load      --&gt; </p>
		<p>ping-tomcat   --&gt; <br />db-load         --&gt; test-canoo<br />compile-web --&gt; </p>
		<p>undeploy --&gt; <br />clean       --&gt; refesh<br />deploy    --&gt;  </p>
		<p>javadoc     --&gt; <br />todo          --&gt; <br />checkstyle --&gt; docs<br />pmd          --&gt; </p>
		<p>clean              --&gt; <br />                            bin<br />package-web --&gt; </p>
		<p>setup-db       --&gt; <br />setup-tomcat --&gt; setup<br />deploy          --&gt; </p>
		<p>clean --&gt; <br />               new<br />init    --&gt; <br /><br /><br /><br /><br />实在是很乱，试了好几个方法，还是这样写出来相对清楚点。compile-web和webdoclet那儿换了个行，compile-web依赖于stage-web、package-service、gen-forms。<br /><br />整个Ant Project的default target是package-web，实际上这个关系图也就是AppFuse的部署流程，确实很大啊。</p>
<img src ="http://www.blogjava.net/hh-lux/aggbug/91567.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2007-01-03 16:18 <a href="http://www.blogjava.net/hh-lux/archive/2007/01/03/91567.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对Spring的IoC和DI最生动的解释</title><link>http://www.blogjava.net/hh-lux/archive/2006/12/10/86757.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Sun, 10 Dec 2006 13:18:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2006/12/10/86757.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/86757.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2006/12/10/86757.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/86757.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/86757.html</trackback:ping><description><![CDATA[
		<p>        这是我以前复制下来的，原文地址已经找不到了。作者写得太生动了！<br /><br />        首先想说说IoC（Inversion of Control，控制倒转）。这是spring的核心，贯穿始终。所谓IoC，对于spring框架来说，就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢，举个简单的例子，我们是如何找女朋友的？常见的情况是，我们到处去看哪里有长得漂亮身材又好的mm，然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………，想办法认识她们，投其所好送其所要，然后嘿嘿……这个过程是复杂深奥的，我们必须自己设计和面对每个环节。传统的程序开发也是如此，在一个对象中，如果要使用另外的对象，就必须得到它（自己new一个，或者从JNDI中查询一个），使用完之后还要将对象销毁（比如Connection等），对象始终会和其他的接口或类藕合起来。</p>
		<p>　　那么IoC是如何做的呢？有点像通过婚介找女朋友，在我和女朋友之间引入了一个第三者：婚姻介绍所。婚介管理了很多男男女女的资料，我可以向婚介提出一个列表，告诉它我想找个什么样的女朋友，比如长得像李嘉欣，身材像林熙雷，唱歌像周杰伦，速度像卡洛斯，技术像齐达内之类的，然后婚介就会按照我们的要求，提供一个mm，我们只需要去和她谈恋爱、结婚就行了。简单明了，如果婚介给我们的人选不符合要求，我们就会抛出异常。整个过程不再由我自己控制，而是有婚介这样一个类似容器的机构来控制。Spring所倡导的开发方式就是如此，所有的类都会在spring容器中登记，告诉spring你是个什么东西，你需要什么东西，然后spring会在系统运行到适当的时候，把你要的东西主动给你，同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制，也就是说控制对象生存周期的不再是引用它的对象，而是spring。对于某个具体的对象而言，以前是它控制其他对象，现在是所有对象都被spring控制，所以这叫控制反转。如果你还不明白的话，我决定放弃。</p>
		<p>        IoC的一个重点是在系统运行中，动态的向某个对象提供它所需要的其他对象。这一点是通过DI（Dependency Injection，依赖注入）来实现的。比如对象A需要操作数据库，以前我们总是要在A中自己编写代码来获得一个Connection对象，有了 spring我们就只需要告诉spring，A中需要一个Connection，至于这个Connection怎么构造，何时构造，A不需要知道。在系统运行时，spring会在适当的时候制造一个Connection，然后像打针一样，注射到A当中，这样就完成了对各个对象之间关系的控制。A需要依赖 Connection才能正常运行，而这个Connection是由spring注入到A中的，依赖注入的名字就这么来的。那么DI是如何实现的呢？ Java 1.3之后一个重要特征是反射（reflection），它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性，spring就是通过反射来实现注入的。</p>
		<p>        如果还不明白，放弃java吧！</p>
<img src ="http://www.blogjava.net/hh-lux/aggbug/86757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2006-12-10 21:18 <a href="http://www.blogjava.net/hh-lux/archive/2006/12/10/86757.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ant中copy操作学习心得</title><link>http://www.blogjava.net/hh-lux/archive/2006/12/10/86635.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Sat, 09 Dec 2006 20:54:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2006/12/10/86635.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/86635.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2006/12/10/86635.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/86635.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/86635.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 看了会ant的DOCS，网上也找了些文章，发现copy这部分都是一带而过，讲得很浅，于是我就只有自己实验下，发现还有点收获。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/hh-lux/archive/2006/12/10/86635.html'>阅读全文</a><img src ="http://www.blogjava.net/hh-lux/aggbug/86635.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2006-12-10 04:54 <a href="http://www.blogjava.net/hh-lux/archive/2006/12/10/86635.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Appfuse学习笔记（1）</title><link>http://www.blogjava.net/hh-lux/archive/2006/12/09/86494.html</link><dc:creator>老贺</dc:creator><author>老贺</author><pubDate>Fri, 08 Dec 2006 18:31:00 GMT</pubDate><guid>http://www.blogjava.net/hh-lux/archive/2006/12/09/86494.html</guid><wfw:comment>http://www.blogjava.net/hh-lux/comments/86494.html</wfw:comment><comments>http://www.blogjava.net/hh-lux/archive/2006/12/09/86494.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hh-lux/comments/commentRss/86494.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hh-lux/services/trackbacks/86494.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 网上有很多Appfuse的学习笔记，毕竟它是一个很大的工程，我现在肯定吃不透它，自己也做个笔记，能学到什么程度目前也说不清楚，记录下学习过程也方便以后查阅。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/hh-lux/archive/2006/12/09/86494.html'>阅读全文</a><img src ="http://www.blogjava.net/hh-lux/aggbug/86494.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hh-lux/" target="_blank">老贺</a> 2006-12-09 02:31 <a href="http://www.blogjava.net/hh-lux/archive/2006/12/09/86494.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>