Spring 2.0的新特性点评
当前位置:以往代写 > JAVA 教程 >Spring 2.0的新特性点评
2019-06-14

Spring 2.0的新特性点评

Spring 2.0的新特性点评

Spring2.0的宣布恐怕算得上2006年Java社区的一件大事了。在Spring2.0宣布附带的文档内里对2.0新特性做了提要的先容,2.0的新特性是自然是我们最存眷的方面:

一、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轻松。

二、提供了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了。

三、集成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框架。

四、JPA支持

这一点其实没有什么可点评的,提供JPA支持原来就是理所该当之事。

五、JDBC的NamedParameterJdbcTemplate

NamedParameterJdbcTemplate我认为意义不凡,为JDBC查询提供了带定名参数的占位符,而不止是JDBC本身的“?”,这样利用JDBC的时候,也可以很容易的结构出来带占位符的动态条件查询,而不是参数值带入方法的拼接SQL字符串了。

六、Spring Web MVC成果的大幅度扩充

看的出来,在Spring2.0内里 Web MVC成果大幅度扩充,已往不提供的UI Taglib也终于提供了,设置文件也举办了须要的简化。固然Spring MVC从框架设计角度来说远远不如Webwork那么有创意,可是也是一步一个脚迹的改造,再共同上各类外围框架譬喻Spring Webflow等的支持,可以预见Spring MVC会生长为Webwork的强敌。

七、支持动态语言ruby,groovy,beanshell

动态语言支持今朝看来还较量简朴,不足强大,可是表白了Spring的一个立场,其实我小我私家但愿Spring可以或许增强这方面支持,甚至斗胆一点,提供用动态剧本语言编写的bean组装设置。

八、异步JMS支持,JMX支持,JCA支持的成果完善

Spring2.0自身提供了两类简朴的JMS Containter,另外还提供了外部JMS Server的接口,别的JMX成果的支持,JCA成果的支持都在进一步的完善进程中。

#p#分页标题#e#

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的新特性也没有出格需要的。

    关键字:

在线提交作业