Thinking in sky

--老贺的BLOG

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  21 随笔 :: 0 文章 :: 35 评论 :: 0 Trackbacks

J2EE框架

     摘要: 人生像个舞台,请良家少女离开。
同样的,Freemarker和Velocity爱好者请跳过本篇。与弃用webwork而单用Spring MVC Controller接口的理由一样,Freemarker本来是一样好东西,还跨界支持jsp 的taglib,而且得到了WebWork的全力支持,但为了它的非标准化,用户数量与IDE的缺乏,在View层我们还是使用了保守但人人会用,IDE友好的JSP2.0 配合JSTL。

对于B/S结构的企业应用软件来说,基本的页面不外两种,一种是填Form的,一种是DataGrid 数据列表管理的,再配合一些css, js, ajax的效果,就是View层要关注的东西了。
  阅读全文
posted @ 2007-08-24 10:50 老贺 阅读(643) | 评论 (2)  编辑

     摘要: 目前的Web Application大多采用流行的基于B/S模式的三层架构开发,这里的三层架构指的就是Web层、业务层和数据访问层。采用分层的开发方式有很多好处,下面只简单地来说两点:

 1:分层开发使不同的开发人员关注他们擅长的特定层面,有助于开发优质的系统。因为很少有程序员可以精通从JS,CSS,DHTML到struts再到 hibernate直至最后的数据库设计这一整套开发流程所要使用到的所有技术。大家各司其职,全力关注自己擅长的层面,这要比一个人或一个小组负责某一模块从页面到最底层的开发方式要好的多。

 2:.分层分离了逻辑,使得系统结构层次明晰,系统变得灵活和易于维护。开发人员应该尽量使系统的各层之间保持相对独立的松耦合状态,这是实现分层的必要条件,也是构建良构系统的重要保证。

  阅读全文
posted @ 2007-08-24 10:37 老贺 阅读(2177) | 评论 (1)  编辑

     摘要: Struts与Webwork的扇子请跳过本篇。

MVC不就是把M、V、C分开么?至唯物朴素的做法是两个JSP一个负责View,一个负责Controller,再加一个负责Model的Java Bean,已经可以工作得很好,那时候一切都很简单。
而现在为了一些不是本质的功能,冒出这么多非标准的Web框架,实在让人一阵郁闷。像Ruby On Rails那样简捷开发,可用可不用,而且没有太多的限制需要学习的,比如Webwork这型还可以考虑。但像Struts那样越用框架越麻烦,或者像Tapestry那样有严重自闭倾向,额上凿着"高手专用玩具"的,用在团队里就是不负责任的行为了。

  阅读全文
posted @ 2007-08-24 10:23 老贺 阅读(634) | 评论 (1)  编辑

     摘要: 因为Spring自带的sample离我们的实际项目很远,所以官方一点的model层模式展现就靠Appfuse了。

但Appfuse的model层总共有一个DAO接口、一个DAOImpl类、一个Service接口、一个ServiceImpl类、一个DataObject.....大概只有受惯了虐待的人才会欣然接受吧。
另外,Domain-Driven逢初一、十五也会被拿出来讨论一遍。

其实无论什么模式,都不过是一种人为的划分、抽象和封装。只要在团队里理解一致,自我感觉优雅就行了。
我的建议是,一开始DO和Manager一生一旦包演全场,DO作为纯数据载体,而Manager类放置商业方法,用 getHibernateTemplate()直接访问数据库,不强制基于接口编程。当某天系统复杂到你直觉上需要将DAO层和Service层分开时,再分开就好了。
  阅读全文
posted @ 2007-08-24 09:58 老贺 阅读(600) | 评论 (3)  编辑

     摘要: 人人都爱Spring加Hibernate。
但Spring MVC+hibernate的Sample如Appfuse的代码却算不得最简洁优美好读,如果在自己的项目中继续发挥我们最擅长的依样画葫芦大法,美好愿望未必会实现。
所以,Pramatic精神不灭。这个系列就是探寻最适合自己的Spring+Hibernate模式。

I-配置文件简化

我厌倦一切配置文件繁重的框架。
最好的情况是,框架提供极端灵活复杂的配置方式,但只在你需要的时候。

Spring提供了三种可能来简化XML。随着国内用户水平的提高,这些基本的简化技巧大家都已掌握。

  阅读全文
posted @ 2007-08-24 09:54 老贺 阅读(486) | 评论 (0)  编辑

     摘要: 为了装wicket,必须先装WTP,只是没想到安装WTP这么麻烦,费了一番周折。

1. 下载EMF、GEF、JEM、WTP。
其中前面三个是安装WTP所必须要先装的,不然只装一个WTP是没有用的。这四个都可以在Eclipse的官网上找到。对应的版本关系如下:
eclipse 3.2:EMF 2.2、GEF 3.2、JEM 1.2、WTP 1.5
eclilpse 3.3:EMF 2.3、GEF 3.3、JEM 1.5、WTP 2.0

  阅读全文
posted @ 2007-07-20 12:35 老贺 阅读(7639) | 评论 (3)  编辑

     摘要: 本文讨论的范围只包括采用 HTML Template 的显示层技术,不包括 Echo , GWT(google web toolkit) 等根据代码产生 HTML 的工具。

本文主要讨论 Server Side ( 针对 Java Language) 的显示层技术,然后进一步讨论 Browser Side ( Ajax )的显示层技术(一个典型的 Ajax 应用也分为 Model, View, Controller – Data, HTML/CSS, JavaScript )。注意,本文关于 Ajax 的讨论只有很少一部分,因为我不擅长这个领域。只是一个顺便的扩展比较。

一个很有趣的现象。 Server Side 和 Browser Side 的显示层技术格局恰好相反。 Server Side 的 Scripted Template 技术比较多,比较流行;而 Browser Side 的 HTML DOM Manipulation 技术、 HTML View Model 技术比较多,比较流行。

  阅读全文
posted @ 2007-07-18 18:05 老贺 阅读(766) | 评论 (1)  编辑

     摘要: Dorado确实是很创意的产品,最近在边学边用,把一些心得记录下来以便以后好查。

1. 在客户端调用dataset1.flushData()时,会到服务端调用该ViewModel实现类的doLoadData(),如果doLoadData()方法里还有其它Dataset,如
Dataset dataset2 = getDataset("dataset2");
Dataset dataset3 = getDataset("dataset3");
…… 这个时候,就得不到除dataset1以外的任何dataset,也就是说dataset1和dataset2为null  阅读全文
posted @ 2007-05-16 09:35 老贺 阅读(1012) | 评论 (1)  编辑

     摘要: 因为中毒,重装了系统和环境,导入项目后,所有使用泛型和ForEach的地方全部报错,晕了,重装系统前是好好的,JDK也是1.5版本,网上查了下,原来是Eclipse配置的问题,Preferences-->Java-->Compiler里,Compiler compliance level一项为1.4,改成5.0就对了。  阅读全文
posted @ 2007-05-15 13:13 老贺 阅读(357) | 评论 (0)  编辑

     摘要: 似乎没什么必要研究ANT到底为AppFuse干了些什么,但为了了解AppFuse的大体框架,也顺便学习下布署应用程序的一些过程或者规范,我觉得还是研究一下比较好。  阅读全文
posted @ 2007-01-03 16:18 老贺 阅读(1238) | 评论 (2)  编辑

     摘要: 首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?  阅读全文
posted @ 2006-12-10 21:18 老贺 阅读(16132) | 评论 (6)  编辑

     摘要: 看了会ant的DOCS,网上也找了些文章,发现copy这部分都是一带而过,讲得很浅,于是我就只有自己实验下,发现还有点收获。
  阅读全文
posted @ 2006-12-10 04:54 老贺 阅读(21790) | 评论 (5)  编辑

     摘要: 网上有很多Appfuse的学习笔记,毕竟它是一个很大的工程,我现在肯定吃不透它,自己也做个笔记,能学到什么程度目前也说不清楚,记录下学习过程也方便以后查阅。
  阅读全文
posted @ 2006-12-09 02:31 老贺 阅读(2788) | 评论 (2)  编辑