ITPub博客

首页 > 应用开发 > Java > 2006年Java开发技术回顾与展望

2006年Java开发技术回顾与展望

原创 Java 作者:xuniji123 时间:2007-01-01 23:15:51 0 删除 编辑
又是一年终岁尾,伴随着技术行业的烟雨风云,我们即将迎来2007年,那么在过去的一年中,我们Java技术开发行业发生了什么呢?

  Java开源终于在人们的千呼万唤中开源,Hibernate发布3.0版本似乎要在2007年大展拳脚一番,Spring发布了2.0在2006年火热过后,Spring也开始被人讨论,Struts方面有了Webwork的加盟,期待新版本继续扬威,EJB在05年就早早结案年初发布了3.0但是新版本似乎没有改变被动挨打的命运,Ajax在06年没有杰作,相对它的弱点和缺陷被披露无疑,JSP没有人在愿意提及它,好像被放在了一个被人遗忘的角落里,JSF刚刚纳入Java规范以来,Sun对JSF寄予了厚望,2006年Java界成绩频丰,2007才是彼此肉博血战的开始。

Struts、Hibernate、EJB、Spring、Ajax等继续成为我们关注的焦点,那么我们接着就从2006年Java这个热血江湖中,来看看都蕴涵着多少风云故事。

  关键字1:Strust、JSF、Webwork-----MVC框架

  Java技术2006年在表示层方面可谓创新不少,,Struts在2006年没有继续问世时候的辉煌,随着Web框架的兴起,Struts的优势逐步在退却,烦琐的配置让它背上了重型框架的枷锁,但是Struts并没有因为繁重而离开人们的视野,Struts庞大的开发队伍,是它赖以生存的强大生命力,今年Ted(Apache软件基金会的成员)已经与Patrick(WebWork 2的高级开发者)和Jason(Webwork核心架构师)探讨Struts与WebWork合并的构想,在未来Struts 2中我们将会看到一个两者完美结合的框架结构这是Struts2的初衷,Struts2构想是我们2006年对表示层方面产生更多的想象,相对于Struts的不断完善与更新,JSP从2.0之后就开始止步,在Struts这些开源框架面前稍显底气和信心不足,开源框架慢慢在吞食着JSP的领地,

  Sun公司也不会让自已亲手打下来的江山就此灰飞烟灭,全力打造JSF收复失地, JSF的优点在于丰富可定制的UI组件,良好的事件响应机制,表达性语言,表单数据自动转换和验证等,如果在配有良好的开发工具支持的话,也许这将成为众多开源表示层框架的末日。开发人员都清楚开源框架带来的无限惊喜,提高了开发效率,降低了复杂程度,但面对满天的框架时,恐怕心中只有暗暗叫苦的份了。大量知名的不知名的框架,布满了Java Web世界,也渐渐的迷失了众人的双眼,誓必要有一种集众家所长的框架出现,来改变技术频多,但都营养不良的框架技术,今年Sun公司把JSF纳入JavaEE规范,JSF终于从幕后走向前台。

  关键字2: Spring、EJB -----轻重级企业开发框架

  业务组件层前期基本是EJB的天下,但是EJB功能实在太强大,它考虑了世界顶级大型系统需求,因此免不了显得很复杂,当初,基本上所有的大型企业高端都是选用J2EE,选用J2EE实际是选用EJB。EJB强调的高可伸缩性为大型企业日益发展提供最大的发展空间,不再因为企业快速发展导致整个企业系统结构都要发生根本变化,这是使用EJB的现实优势。然而,这个曾经风靡一时的技术, 现在确成了Java领域里中最受争议的技术,它的繁琐复杂把很多人拒之门外,它深奥的理论让一些人如痴如醉大唱赞歌,可是它的博学几人又能读懂?2005年底Ejb草草结案,在2006年推出EJB3.0,EJB3.0的宗旨是从某种程度上减轻了开发人员进行底层开发的工作量,取消或最小化了很多(以前这些是必须实现)回调方法的实现,并且降低了实体Bean及O/R映射模型的复杂性。

  EJB3.0虽然在简化开发上做足了功课,但是已错过最好的发展良机,EJB未来的尴尬处境还不会在短时间内改变。

  与重量级相比的是轻量级,业务组件层轻量级解决方案有Spring/HiveMidn等,轻量一词曾经因为EJB的出现而变得时髦,给人造成的感觉是:EJB花了大力气打造的那些功能,使用轻量级解决方案可以轻而易举完成,虽然这可能是一种错误的观点,但是,Spring的推出着实吸引了不少人的眼光.

  面对EJB3.0的挑战,Spring也不敢示弱,在今年10月份发布2.0版本,来抵制Ejb的围攻,新版本在原基础上强调了三个理念:简洁、强大、健壮。较之前版本做了以下增强:

  1、IOC的增强,可以自定义Beans的应用范围

  2、XML增强,支持namespace

  3、AOP的增强,采用了AspectJ的优点更加高效地识别程序中需要应用的切点

  4、JMS的增强,优化JMS消息的conusme以及本地事务处理

  5、支持多种web开发语言,ruby,groovy以及beanshell

  6、MVC的增强,增强了Form表单校验功能

  7、增加了对门户的支持

  8、引入了Java5的metadata功能间接增强了对OR工具的增强

  这些新功能带着浓浓的火药味,坚决要把EJB逐出这个阵营,凡事要从两个方面来看,有一得就有一失,Spring虽然在功能继续加强攻势,但是繁烦和复杂的配置也伴随着它一起来到人们面前,Spring切记EJB的教训,不要步EJB的后尘。

  关键字3:Hibernate、JDO-----数据持久层框架

  如果说在Web世界的表现层和业务逻辑层的竞争还略显温和的话,那么在数据持久层的竞争可谓军阀割据、血流成河。

  2006年我们不得不提的一项技术就是Hibernate框架,带着对数据库操作灵活易用的优点在对象持久层框架中迅速的占领一席之地,同时Hibernate剑峰指向EJB的实体 Bean。由于EJB的持久化技术一直是EJB致命的硬伤,成为EJB挥之不去的阴影,并最终促成了Hibernate的辉煌。

  在业务层方面Spring一支独大,似乎Spring并不满足目前现状,发布的2.0版本增强了对持久化层方面的设计,Spring的突然搅局,不得不让Hibernate绑紧了神经,Spring新版本发布不到一周Hibernate就匆匆推出3.2版本,来回应Spring和Ejb,Spring想在持久层方面有所建树,Ejb想用新版本抢占自已失地,但是Hibernate的老大地位依然无人憾动。

  前不久我在网上看到一篇文章为Hibernate列举了五大罪证:

  一、Hibernate可以设计很多解决方案,究竟哪个更适合我们无法判断?光是主键生成,就有七八种方案供你选择,你为难不为难?

  二、集合属性可以用Set,也可以用List,还可以用Bag,到底哪个效率高,你为难不为难?

  三、查询可以用Iterator,可以用List,哪个好,有什么区别?你为难不为难?

  四、复合主键你可以直接在hbm里面配置,也可以自定义CustomerType,哪种比较好些?你为难不为难?

  五、对于一个表,你可以选择单一映射一个对象,也可以映射成父子对象,还可以映射成两个1:1的对象,在什么情况下用哪种方案比较好,你为难不为难?”

  Hibernate掳获太多人的心,这五大罪证,不会影响Hibernate前进的脚步,也不会阻止学习Hibernate的热情,连软件富豪微软也不得不对其敬畏三分,NHibernate杀入.NET开发领域,足以证明Hibernate的未来不容质疑,2007年还将继续走红。

  JDO可以算是Hibernate时代的一个”悲情人物”,JDO和Hibernate的O/R映射类似,所不同的是,JDO使用了不同类型的查询API,也就是JDKQL,而不是Hibernate的HQL。JDO可以通过被管制的持久化对象很灵活地感知每个字段值的变化。单从JDO本身来说,这种技术是很好的,但一种技术的兴衰不仅仅取决于技术本身,而更大程度上取决于是否有更多的厂商支持这种技术。由于JDO最初是由Sun提出来的,Sun本来打算使JDO成为数据持久化的规范,但由于JDO没有得到大多数厂商的支持,因此,JDO技术虽然现在有一定的应用,但它并不是标准的Java规范,JDO在2006年没有太大动作来看,不排除将会从这个市场上出局的命运。

  2007年我们有哪些技术值得期待呢?

  Java开源:对业界和开发人员以后产生哪些影响,就目前还没显现,在2007年这些影响将会体现出来。

  2007年的重头戏将是JSF,由于Sun对JSF寄予厚望,因此,近来关于JSF的争论也开始多了起来,各大厂商也开对JSF投入更多的关注度,Orcale,IBM,和国内的金蝶等软件巨头已经把目标锁定在JSF身上,看来2007年称为JSF年不是美丽的慌言。而AJAX虽然可以实现丰富的Web前端界面,但由于编写AJAX程序的工作量非常大,因此,单纯的AJAX应用也许不会大面积铺开,但自从微软推出Atlas(一种包装AJAX技术的可视化组件)后,AJAX好象又开始升温了,也许在未来,JSF和Atlas会上演一场龙争虎斗的好戏。

  Struts将重新回到焦点的位置了。在即将推出的Struts2.0中增加了很多的新功能,而且Struts又和Webwork进行结盟,Webwork加入Struts会展现一个什么的框架结构,我们还不得而知,也许它们的结合会再次带动Struts社区的狂热。

  2006年说最烂的一个词就是SOA了,SOA是一个框架,还是一种思想,我们一直没有看到它庐山真面目,到底SOA是什么,大家都在说业界都在关注,IBM、BEA、ORCALE连Sun公司的Netbean也发布自已的SOA解决方案,宣称产品支持SOA,这么热的一个名词在2007会掀起什么样的波澜,在Java界会对谁发起冲击我们还要在2007年揭晓。

  在持久化层方面,在2007年在这一层当之无愧的焦点当数Hibernate和EJB3.0了,从EJB3.0的规范中可以看出,EJB3.0的实体Bean采用了和Hibernate类似的模式,在EJB3.0中也可以选择使用传统的模式和Hibernate模式。这就意味着EJB3.0和Hibernate有可能走向融合。最终在数据持久层中统一采用类似于Hibnerate模式的轻量级框架形式。

  这是一种想法,也是我们所有开发人员一种期待。

  在业务层方面,2007不会有太多闪光的地方,Spring还将稳定发展下去,EJB不会搅乱现有的固定格局, Spring在10月份发布新版本足以稳定07年的战略地位。

  在这些层面之外,还有很多诱人的非Java技术会吸引大量的眼球。在2005年有人就预言Ruby将消失灭迹,但是这种现象,没有在2006年出现,反而越活越精神,年初发布Rails1.1版本,年底发布推出rails1.2RC版本,Ruby的热头不容小看,有人把它比做新兵挑战老将的神秘武器,敏捷的Web开发让很多的框架暗然失色,脚本语言在2007年还是充满想象的。

  2006年是Java界备受关注的一年,也成绩频丰的一年,Hibernate继续领跑,Spring动力不足,Struts期待新版改变现状,JSP已青春不在,JSF被寄予厚望,2007年谁能独领风骚?我们在预测,业界也在观望,这些未知的答案让我们在2006年细细的品味,新的一年也许会有新惊喜。

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8271432/viewspace-887888/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    44
  • 访问量
    437598