<b>Spring 2.0的新特点点评</b>[Java编程]
本文“<b>Spring 2.0的新特点点评</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Spring2.0的公布恐怕算得上2006年Java社区的一件大事了.在Spring2.0公布附带的文档里面对2.0新特点做了概要的介绍,2.0的新特点是自然是我们最关注的方面:
1、Spring的XML配置引入XML Schema语法简化配置
在Spring1.x系列中,bean的配置文件利用DTD,没有namespace的脱离.2.0的一个非常大的改良是引入了XML Schema的namespace,因而可以将bean的配置文件做大幅度的简化.这些简化包含了对bean属性的各种简化,AOP配置的简化,事件配置的简化,JNDI配置的简化等方面.当然,在简化配置的同时,新的XML Schema实际上引入了更多的XML语法,因此利用一个支持XML Schema的XML Editor就显得非常必要了,比方Eclipse WTP便可以供应Schema的语法自动提醒和校验功效.
Spring1.x的bean配置文件渐渐复杂烦琐化,是Spring历来被人所垢病的主要问题之一.在Spring2.0里面XML Schema语法的配置可以在相当程度上降低配置文件的复杂程度和烦琐程度,可以视为Spring的庞大改良之一.但是我们也必须看到XML Schema并没有从本源上面办理XML配置复杂的问题,而只是减轻.
将全部的bean之间的依靠关系,组装关系通通利用XML来描写,本身就会招致XML阅读和改正一定的艰难.并且用XML配置本身无法直接举行单元测试来考证依靠关系.因此,当bean之间关系越复杂的时刻,XML配置文件本身的保护也是一个负担.
我个人对比等待将来的Spring可以利用脚本语言来编写和组装bean之间的关系,这样组装脚本本身也是可测试的,并且脚本的描写本领要远远好过XML配置文件,同时编写和保护起来也比XML轻松.
2、供应了request和session范围的bean
引入request scope和session scope的bean,我感受是把双刃剑.关于普通的Java Web框架利用来说,和Servlet容器相关的操作应当限制在Web层,关于业务层来说,不该该触及request和session的scope,不然业务层代码无法脱离Servlet容器举行单元测试.关于利用Webwork/Struts框架的用户来说,恐怕不太会利用该特点,别的按照我的理解,大概request/session scope的bean也是为了供应应Spring MVC的Controller利用的.
除此之外,关于AJAX Web Service调用来说,这一特点反而是很有效处的.关于这种利用场景,JS通过AJAX调用,抛开Web层框架,直接拜候业务层bean,这个时刻就需求供应request/session scope的bean了.
3、集成AspectJ,可以管理容器外对象,供应了范畴模子的依靠注入
普通由Hibernate管理的长期化对象PO,并非由Spring容器初始化的,常常是用户自己new出来,大概通过find,load办法成立的,后来果就是Spring容器无法对这种容器外成立的对象举行bean依靠关系注入.
在Spring2.0中,可以利用AspectJ对范畴模子举行静态织入,这样当该范畴模子在容器外被成立的时刻,会产生对容器的回调,举行依靠关系的注入.
Spring2.0供应的这一特点,确保了Martin Folwer的Rich Domain Object的可行性,这一特点的供应恐怕会对将来很多Java系统的计划产生相当深远的影响.
其实针对Rich Domain Object更进一步,假如将DAO功效作为Domain Object的抽象父类,那么长期化对象PO就堆积PO,DAO,Service对象于一身,整个业务层,长期层完好归并为一个对象,通过这种方法举行框架简化得到的后果就是,高度近似于ruby on rails的full-stack的MVC框架.
4、JPA支持
这一点其实没有什么可点评的,供应JPA支持本来就是理所该当之事.
5、JDBC的NamedParameterJdbcTemplate
NamedParameterJdbcTemplate我认为意义不凡,为JDBC查询供应了带命名参数的占位符,而不止是JDBC自己的“?”,这样利用JDBC的时刻,也可以很简单的构造出来带占位符的动态条件查询,而不是参数值带入方法的拼接SQL字符串了.
6、Spring Web MVC功效的大幅度扩大
看的出来,在Spring2.0里面 Web MVC功效大幅度扩大,过去不供应的UI Taglib也终于供应了,配置文件也举行了必要的简化.固然Spring MVC从框架计划角度来说远远不如Webwork那么有创意,但是也是一步一个脚迹的改良,再配合上各种外围框架比方Spring Webflow等的支持,可以预见Spring MVC会生长为Webwork的劲敌.
7、支持动态语言ruby,groovy,beanshell
动态语言支持目前看来还对比简单,不够强盛,但是表明了Spring的一个态度,其实我个人但愿Spring可以加强这方面支持,乃至斗胆一点,供利用动态脚本语言编写的bean组装配置.
8、异步JMS支持,JMX支持,JCA支持的功效完善
Spring2.0自身供应了两类简单的JMS Containter,此外还供应了外部JMS Server的接口,别的JMX功效的支持,JCA功效的支持都在进一步的完善历程中.
Spring2.0在这几个方面的功效支持不是那么引入注目,毕竟普通Java Web利用很少利用这些方面.但是Spring供应这些功效的完善支持意义却很深远,因为这些功效都是J2EE标准所要求供应的功效,也是传统利用服务器厂商相比较Java开源框架的传统上风项目.一旦Spring2.0对这些功效供应了完善的支持,那么将传统的Java企业利用完好迁移到Spring框架上面的技术障碍就一扫而空了.
因此Spring是一个野心很大的框架,从目前情况来看,Spring可以说是Java开源框架之集大成者,从将来来看,Spring将供应J2EE厂商所可以供应的全部必要的功效,终究Spring将有大概取J2EE标准而代之,成为Java企业开辟的事实平台和事实尺度.
总体来说,Spring2.0将向将来的宏壮目标又迈进了一大步.不过关于我等普通Java Web项目的开辟需求来说,2.0的新特点也没有分外需求的.
以上是“<b>Spring 2.0的新特点点评</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |