年Java世界发生了巨大变化主要方面是诞生和发展了几个新名词IOC AOPSOAMDA当然除了这些都是决定Java技术未来走向的革命性发展以外还有很多细部和微观的发展我们先来谈谈这些重要的细节技术发展
首先 Java的根基JDK已经跨越到了JSE 或者称为JSE 不过我更喜欢称它为延续性是我们应用程序员更关心的当然革命性是那些新技术发明者更陶醉的所以他们曾经取名JSE 现在为了表示这种跨越而且跨越是非常巨大一下子达到了JSE非常夸张不过老外在技术上确实经常极端偏执者才能生存我想是其行动主义文化的主要基础
JSE 最吸引眼球的我认为主要是annotate特性该特性可以大大降低程序员的编程量它和Java Relfect机制结合可以编制出相当灵活的软件系统或框架
从JSE看出SUN正在试图简化Java但是也许这一简化动作来得迟了点
同样珊珊来迟的是JEE Web层的一个标准JSFJSF使得程序员在开发JEE的Web程序时能够如同开发SWING那样实现可视化开发提高了开发效率但是必须有高级开发工具支持
由于好东西来得太迟在一份最近调查中显示开源项目Struts已经在JEE实际Web层开发中占据主导地位Struts在年是达到成熟顶点它的主要特点是将Form表单对象化同时提供简单的XML标签替代以前Jsp中的Java语言这样在Jsp中彻底消灭了Java代码除了StrutsTapestry这种彻底抛弃Jsp的开源Web框架产品也值得一提它和WebWork一起成为一颗引人注目的星星
年发生了太多新的激动人心的事情其中最引人注目的是AOP和SOA的迅速发展Java世界的发展一直以来是分两条路线第一条是工业路线以SUNIBMBEA和Oracle等工业巨头为代表的业界标准当工业巨头制定出EJB 以后他们认为在JavaBeans技术框架内EJB已经走到极限基本无需太多发展因此他们将关注目光投向软件系统服务功能上当一个个EJB组件提供了可重用的功能后如何向不同客户输出这些强大的可重用的功能呢?是反复安装拷贝这些组件功能?还是以一种服务的方式适时提供全面的租用?SOA面向服务架构因此提出来并且得到工业界巨头的大量投入和发展同时他们还在关注流程的可定制化和可视化开发通过强大的开发平台可以很轻松地完成工作流的业务定制和修改
当业界巨头关注重点从JavaBeans结构转移时一种新的设计思想和编程风格AOP(面向方面编程)诞生了面向方面编程是OOP面向对象编程的延续AOP于年底已经在国外热起来到了年应该算是全面开花各种AOP产品如JBoss SpringAspectwerkz等迅速诞生和发展带给程序员全新的概念和理念沖击AOP编程方法可以应用在软件开发的各个领域当你发现某个功能具有普遍性和通用性以后那么这个功能也许可以使用AOP实现这样你的代码优雅同时可维护性和拓展性大大增强
Ioc反转控制应该说有着AOP类似解耦思路通过Ioc模式或容器可以比较彻底分离JavaBeans之间的调用和被调用关系达到真正地面向接口编程是Ioc使的面向接口编程变得更具有意义而且重要Ioc的产品如纯洁的PicoContainer以及Spring等等
开源和业界标准的分歧不仅仅体现在JavaBeans体系发展上还体现在对象持久化方式上在年有三种流行的对象持久化在被广泛使用EJB的CMPHibernate和JDO这三者之间的区别和联系也是很多程序员津津乐道的特别是Hibernate的创始人Gavin King不断对JDO的质疑使的Hibernate名气大升也使的JDO一直未能够进入EJB的持久化标准Spring+Hibernate架构以及使用基于JBoss的EJB架构成为低成本高质量JEE流行架构
这种混乱的局面下EJB 标准Preview方案被年Java ONE大会首次提出EJB 试图取悦那些轻量方案的追随者同时又能兼顾过去EJB标准的系列发展JBoss迅速地提供了对EJB支持包其中我们看到了Gavin King这位斗士的身影
同时Hibernate向何处去是我们应用系统程序员关心的Struts 正在向JSF标准靠拢和迁移Hibernate是否能够一直孤军作战?目前一项旨在统一JEE持久层技术的标准方案正在启动中我们期望简单统一的持久层方案出台减少程序员选择迁移之苦
年又是Java世界吵闹的一年有的程序员说现在学java却越学越糊涂看了很多东西不但大脑里没有头绪反而有种走火入魔的感觉因为各种技术派别都在争夺话语权话语权的争夺意味着商机的诞生JBoss和Spring的开发团体先后转为商业公司是一个证明对于应用者来说没有永远的解决方案只有合适的工具Java世界提供给你的是工具箱而非一种选择需求是选择工具的唯一原因
让我们视野从JEE思想和技术之争转移到需求分析领域的领域在这个领域一直也存在两种意见面向数据表分析还是面向模型分析?也就是说建立一个新的系统是先分析设计数据表还是模型前者是以前数据库系统经常采取的方式但是这一传统的方式目前也受到OO对象的沖击MDA(面向模型分析)在年成熟开花各种Java成品也如雨后春笋一样遍地开花MDA思想提出了极端观点将来只有建模专家(其它程序员都变成蓝领工人了)只要建模专家通过UML设计出一个系统的模型通过特定的Java MDA工具就可自动生成相应的代码好像真的不需要普通程序员了
结束语
总之年的Java技术带给我们更多的是激动和压力新技术发展以月计算作为程序员的我们如何跟上这些新技术发展同时能够选择正确的技术引入我们自己的应用系统这些才是我们的真正挑战