Spring2.5的主要新特性
这里只列出Spring2.5中我们常用到需要注意的新特性,来源是Spring2.5的官方文档,既然文档中有我还在这里列出来的原因是相当于来个归纳总结,给初学者省时省力,免得看那么长的文档,当然在后续的文章中,涉及到实例的我都会举例,理论方面的就免了。
Spring经历了两次大修订,第一次是2006年10月的Spring2.0,另一次是2007年11月的Spring2.5。
简介:
(1) Spring对Java SE的支持
Spring框架继续保持对Java1.4.2及以后版本的兼容。但Spring的一些高级功能无法在Java 1.4.2中使用,Spring2.5完全支持Java 6,而Spring2.0在支持Java 5比较好。
(2) Spring对Java EE的支持
Spring框架继续保持对Java EE1.3及以后版本的兼容,完全支持Java EE 5。
(3) Spring对服务器(应用服务器和Web服务器)的支持
WebLogic:8.1、9.0、9.2、10
WebSphere:5.1、6.0、6.1
OC4J(Oracle):10.1.3、11
JBoss:3.2、4.0、4.2
Tomcat:4.1、5.0、5.5、6.0
Jetty:4.2、5.1、6.1
Resin:2.1、3.0、3.1
GlassFish:v1、v2
控制反转(IoC)容器:
(1) 新的bean作用域
Spring2.0 IoC容器中只支持singleton和prototype两个不同的bean作用域,而在Spring2.5中则还支持request、session、global session三个在web环境下使用的bean作用域,且提供了hooks,可以让用户创建自己的作用域。
(2) XML配置更简单
Spring2.5对Spring 2.0的DTD进行了更新,使用时:<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
spring-beans-2.0.dtd可在发布包下的dist/resources下找到。
(3) Annotation(注解)驱动配置
Spring2.5引入了完整的Annotation集合如:@Resource、@Autowired等
面向切面编程(AOP):
(1) 更简单的AOP XML配置
支持定义从JAVA对象中发展中来的切面
(2) 对@AspectJ的支持
加入了对bean(...)pointcut 元素的支持,在 spring定义的bean命名中对指定的命名进行匹配
(3) 对AspectJ load-time weaving的支持
中间层:
(1) XML声明式事务配置更简单
以前版本的事务配置方式仍然支持,Spring2.5支持装载时织入和注解驱动的事务管理,这是通过context:load-time-weaver 和tx:annotation-driven mode="aspectj"的联合使用进行的。
(2) 对Websphere 事务管理的完整支持
自动探测底层的JTA 事务平台,可以使用Spring 2.5的新 tx:jta-transaction-manager 配置元素。它会自动探测BEA WebLogic和IBM WebSphere,注册正确的PlatformTransactionManager。
(3) JPA
Spring 2.5对OpenJPA的支持升级到了OpenJPA 1.0,支持savepoint这样的高级特性
(4) 异步的JMS
在Spring 2.5中, JCA风格的异步消息监听器设置也通过GenericMessageEndpointManager工具得到了支持。这是对标准JMS监听器工具的补充,允许对ActionMQ和JORAM这些消息broker进行更深入的集成。Spring 2.5 还引入了一个XML namespace来简化JMS配置,可以对大量监听器进行简明配置。这一命名空间支持标准的JMS监听器和JCA setup风格,在配置时只有很小的改变。
(5) JDBC
引入了新类,Spring 2.5显著的扩充了SimpleJdbcTemplate的功能,引入了SimpleJdbcCall 和SimpleJdbcInsert操作对象。
移植到Spring2.5:
从Spring2.0.X升级到Spring2.5只需要把Spring2.5的jar复制到您工程目录相应的配置。
改动处:可以参考发布包下的changelog.txt文件
在Spring2.5中,Spring Web MVC不再在spring.jar里,Spring MVC发布在lib/modules下,包是:spring-webmvc.jar和spring-webmvc-portlet.jar。
对struts1.x的支持独立成spring-webmvc-struts.jar。
Spring2.0的'spring-jmx.jar'和 'spring-remoting.jar'已经被转移到 Spring 2.5的'spring-context.jar'。
Spring 2.0的 'spring-support.jar' 被改名为 'spring-context-support.jar'。
Spring 2.0的'spring-jdo.jar', 'spring-jpa.jar', 'spring-hibernate3.jar', 'spring-toplink.jar' 和 'spring-ibatis.jar' 被合并到Spring 2.5大粒度的'spring-orm.jar'中。
Spring 2.5的 'spring-test.jar' 取代了'spring-mock.jar'。
Spring 2.5的 'spring-tx.jar' 取代了 'spring-dao.jar' 和'spring-jca.jar' 文件。
Spring主代码中的Apache OJB支持被完全删除了。
iBATIS SQL Maps 1.3支持被完全去除了。
Spring 2.5中,对 Hibernate 2.1 和 Hibernate 3.0 的支持已经去除。
Spring 2.5中,对JDO 1.0 的支持被去除。