益盛:java框架教程

建站知识

java框架的定义:
(一)从现实生活的角度来看
框架,就好像是 “风筝”骨架。 如果我给你一个“风筝”的骨架,你只需要去往这个“风筝骨架”上,贴上一层纸。一个现成的风筝就做好了。如果没有“风筝的骨架”,那你需要,自己去找“竹子”“木材”“铁丝”等等东西,然后还要“自己手工”的做出一个“风筝骨架”来。。。想一想,如果你做100个风筝的话。。。估计就要把人给“累死”了。 
(二)从技术角度来看 
框架就是半个做好的程序。如果我们要编写程序的话,只需要花费 一半的时间精力,就可以完成,整个程序了。因为这个现成的“框架”,已经帮我们做好了一半了。 这就是为什么,要使用“框架”,因为这样能够让我们,更加快速的开发出程序来。
现在现在框架有很多种。。。 
例如:你的程序是和数据库打交道的:就用Hibernate 或 Ibatis 等等数据库框架。 
如果是:提供WEB页面显示的话,就用Struts或Struts2等等!

之前有人问我这么几个问题:Java除了做Web还能做什么?
Java做一个项目为什么要用这么多框架?问题没有标准答案,答案大家都比我清楚,这个我就不多说了。但是使我想到的是,的确,Java是越来越复杂了,JDK的速度发展惊人,之前的tiger 5.0,今年刚出炉的mustang 6.0,还有即将出台的dolphin.我越来越感叹Java程序员的辛苦。特别是面对众多的选择,有开源的,也有商业化成熟的产品,虽说框架工具不是重要,重要的是OO思想,设计模式,但实际操作起来,框架的选择还是十分重要的,如果项目开始选择错误的话,将会面临严重的成本的危机。由于我的能力和实际经验有限,先说说本人对JAVA各层框架的理解。

先从页面层说起,页面的技术五花八门,标准的Taglib和jsp,虽然说是工业标准,侵入性太强,却是累活,脏活,对前台设计十分不友好,一些前台设计师就发难了,说逻辑和页面混合起来,还怎么开发啊?于是才有了struts,webwork类的web框架MVC模式。听说Model Macth开源的Fastm项目在解决非侵入性方面非常棒,一直都找不到相关例子。页面层的工作通常是最多的,是面向客户的,所以现在一些RIA应用兴旺起来的根本原因是要最大程度地满足客户的需求。在这层Java阵营可以说是败了,UI开发不方便的同时,也没有VS.NET拖曳式开发的好处,既要对开发设计人员所见即所得,又要对客户展现富客户端的优势,这点我预测就是最近几年页面层技术发展的方向。

然后说Web层,Web层是最不好选的,但如果想支持一些RIA的应用,诸如Ajax,Flex,就只能用JSF。其他的框架各有优点,Struts成熟用户群大,有很好的标签库,而webwork用起来简捷方便,有利于TDD,适合用于小项目开发;tapastry很完美,可惜入手太难了。

再说业务逻辑层,选择视乎不是很多,要实现集群,负载均衡的用Ejb,
灵活轻便,面向测试的就选择Spring Framework.JBoss Seam和Jdon Framework没有用过,不过看起来也是很简便的。这层的核心是当前的主流IOC和AOP,相信大家也不会有所争议的。这里才是程序员真正关心的。可是跟逻辑业务无关的操作实在是太多了。

最后的OR层,Hibernate,Ibatis,Toplink,JPA,都是杰出的代表,是应用系统中最难的地方,涉及到DDD和OO,不能简单的以为做OR层就是分页+CRUD+缓存,提高性能和效率是OR层也就是持久化层的最终目的。
实现SOA不在我们程序员的目光内,对,它是必然趋势,但是是针对项目管理者的。SOA现在还离我们很远,只能静观其变。

Java也许它的使命就是解决复杂的应用,我们能从ruby,phython之类的语言学到什么吗?回归原点,项目的关键不在技术,而在于需求。我们不能再陶醉在JAVA的海洋里自我满足了,无论ROR,.NET里面也有很好的思想,它们也有庞大的社区,也有在前进。JAVA的优势是众多的组件,类库,框架可供选择,但怎样才能不让我们的优势不变劣势呢?这是我们要仔细思量的。

ROR针对的方向是中小型WEB应用,与PHP可以说是不是你死就是我亡,对JAVA也有所影响,不过影响不大。说RUBY将要取代JAVA是无稽的,更何况JRuby,Jphython,Groovy,BeanShell可以使JAVA”动”起来,而且对Groovy深抱厚望,在字节码支持JAVA同时,对JAVA开发人员友好,有比RUBY更好的效率和性能,JAVA已经走向平台化了。如果Groovy的出现能在减少开发人员的工作量的同时,能够快速敏捷地满足用户的需求,那必定是一件好事!

大家其实对框架也不用太在意。framework这类东西也就是Java发展过程中对于某类问题的一种解决方式。即使不用框架,Java也足以让我们做好无数的事情。
Java语言本身足够伟大。作为虚拟机时代最优秀的技术,它完全有能力长久地生存发展下去,一如它伟大的前辈C语言。

文章来源:益盛网络小鱼儿,转载请注明出处!
更多编程资源:http://www.sendong.com/source.htm

继续阅读