不知不觉间,Spring 2.0的RC2已经发布了。看着这个在Java界声望极高的Framework终于下定决心做出了大版本的升级,我想,大家肯定会心里痒痒的吧。毕竟,Spring从刚刚开始步入大家的视线开始直到今天,正式版本也不过只做到1.2.8。这次Spring的大版本好的变动,无疑会给Java世界带来很大的震动。JavaEE 5.0也刚刚发布了,想到不久之后就会看到这两个对头的竞争,还真是觉得有趣。
So,what's new in Spring 2.0?我之前了解到的是,2.0里面的AOP会加入对AspectJ的支持。前两个刚去下载了RC2,惊奇地发现Document已经很完备了,真是不得不佩服Rod他们。只可惜没有中文版的Document,看来一看英文就头疼的朋友可能要等上一阵子了。下面简单总结一下2.0中的新东东。
IoC
Easier XML Configuration
XML的配置会更简单。我想这是大家最希望看到的了。不知道能不能改善XML Explosion的问题。
Extensible XML Authoring
可扩展的XML。这主要是提供给第三方Framework开发商用的,开发商可以扩展Spring的XML配置,把自己的特性加到里面去。好倒是好,但是会不会变得很乱啊...紧张中...
New Bean Scopes
在Spring 1.x中,Bean的Scope只有singleton和prototype两种。而在2.0中,针对不同的部署环境,增加了新的Scope,例如,针对Web开发就增加了request和session。同时,Spring 2.0还允许用户定义自己的Scope。
AOP
Easier AOP XML Configuration
利用AspectJ使AOP的XML配置变得更加简单,同时支持强类型的advice。
Support for @AspectJ Aspects
支持通过@AspectJ Annotation声明的Aspect。这样,这些Aspect就可以在AspectJ和Spring AOP间共享了。
Middle Tier (Data Access)
Easier Configuration of Declarative Transactions in XML
更简单的声明式事务。1.2.x中的事务声明方法仍然可以使用,但是新的方式会更简单。而且2.0版本还提供了一个AspectJ的类库,你可以用它对任何对象--甚至不是由Spring创建出的对象做事务处理。
JPA
新版本中添加了一层对JPA的抽象,其目的与原来的JDBC抽象层类似。
Asynchronous JMS
之前的版本中的JMS只支持产生消息。这个功能被实现的很好,但是对JMS的支持还很不够,如异步地产生和消费消息。新版本中添加了这些缺少的功能。
JDBC
在JDBC抽象层中也增加了几个值得注意的新类。一个是NamedParameterJdbcTemplate,它提供了对通过named parameter编写JDBC声明的支持(与通过传统的占位符“?”编写JDBC声明相反);另一个是SimpleJdbcTemplate,它的目的是进一步简化Spring JDBC 抽象层的核心类JdbcTemplate的使用方式,但是这个类只能在Java 5中使用。
Web
A Form Tag Library for Spring MVC
为Spring MVC添加一个丰富的JSP标签库是获得Spring用户最多选票的JIRA议题。Spring2.0就提供了一个功能十分全面的JSP标签库。Spring Team自己觉得这个标签库可以满足所有投票者的需求,让我们拭目以待吧!
Sensible Defaulting in Spring MVC
有的时候,项目中会有很多约定俗称的命名惯例。比如,Controller往往会被wire为类名去掉“Controller”这个单词,像ViewShoppingCartController类,往往会被wire为“viewShoppingCart”。Spring 2.0对这种默认的convention提供了显式的支持,这就可以大大简化Spring的配置工作。
Portlet Framework
新版本也提供了自己的Porlet框架。
Everything Else
Dynamic Languate Support
Spring 2.0现在可以支持不是用Java编写的Bean了。目前,Spring支持的动态语言有JRuby、Groovy和BeanShell。
JMX
对JMX的改动是进化性的,而不是革命性的。
Task Scheduling
新版本提供了对任务调度的抽象。
Java 5 Support
这个就不用多说啦。
综上所述,可以看出,Spring 2.0最大的新特性就是简化开发过程。在人人都批评Java企业应用平台过于复杂的今天,Spring能如此保持清晰的目标,以简化开发过程为第一目标,实在是很难得。然而,JavaEE 5也是打着简化开发过程的旗号发布出来的,但从目前来看,却没有打动广大开发人员的心。TSS和InfoQ上已经连续出现了几篇感叹“JavaEE is deading”的文章了,真是可怜Sun啊,总是费力不讨好。希望Spring能挑起简化开发过程的重任,给我们一种焕然一新的轻松感觉。
分享到:
相关推荐
3. Spring 2.0和2.5的新特性(What's new in Spring 2.0 and 2.5) - 引入(Introduction) 这部分详细列举了Spring 2.0和2.5的主要更新,为开发者展示了新版本带来的提升。 - 控制反转容器(The Inversion of ...
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot...
Building RESTful Web Services with Spring 5 – Second Edition: Leverage the power of Spring 5.0, Java SE 9, and Spring Boot 2.0 Find out how to implement the REST architecture to build resilient ...
Practical Apache Struts 2 Web 2.0 Projects shows you how to capitalize upon these new features to build next–generation web applications that both enthrall and empower your users. <br>Gain an in–...
what's new?(ver2.1) 改进图表报表图表生成并增加图表生成配置 定时任务功能完成 支持大数据产品查询引擎(Hive,Presto,HBase,Drill,Impala等) 提供REST API服务接口 增加报表权限控制 what's new?(ver2.0) 界面交互...
39、String s=new String(“xyz”);创建了几个String Object? 12 40、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 12 41、Java 的接口和C++的虚类的相同和不同...
Turning to technology, Aleksa has been involved with the Spring Framework since early days, becoming an expert in enterprise Java development with Spring, along with other open-source technologies....
In Eclipse, go to Help >> Install New Software... then either use the update site URL, or download a ZIP archive of the plugin from SourceForge: Update site URL: ...
TS-5214-Java Persistence API 2.0: What's New.pdf,这个文件可能专注于JPA 2.0的新增特性,比如多租户支持、 Criteria API、复合主键等,这些更新增强了JPA的功能和灵活性。 最后,TS-5292-Java Technology for ...
This book gets you started with essential software development easily and quickly, guiding you through Java's different facets. By adopting this approach, you can bridge the gap between learning and ...
This book gets you started with essential software development easily and quickly, guiding you through Java's different facets. By adopting this approach, you can bridge the gap between learning and ...
<#assign mail="jsmith@other.com" in my> ${my.mail} l 输出结果: jsmith@acme.com jsmith@other.com l 数据模型中的变量任何地方都可见,也包括不同的名字空间,下面是修改的库: <p>Copyright ...
1.11. Apache License Version 2.0, January 2004 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxvii 1.12...