Spring 版本 区别

1. Spring2.0完全向下兼容Spring1.2,代码不经过改动就可以运行项目!

2. Spring1.2和Spring2.0的区别在哪里?

区别就是在applicationContext.xml的文件中!(在.jar包里有)

a.头文件不同1.2是.dtd规则,而2.0是.xsd规则

b.下面的配置单态性不同!

Spring变化比较大的版本主要分为1.2之前、2.0、2.5和3.0

Spring跟Struts不同,就算是一些老的设定方法,在新版本上也可以用。

Spring版本升级的主要趋向如下:
1.兼容新的Java标准
2.支持更高的Java版本
3.支持更多的周边框架
4.简化Spring的设定

书的出版速度永远都比不上软件的更新速度,是否适用,要看你用的是哪个版本。
如果是从现在开始学习,当然是从3.0版本开始的好。
但是,Spring的核心原理一直没有太大的变化,如果从理解Spring机理的角度,个人认为就算是1.2以前版本的内容也无所谓。
我个人现在使用Spring3.0,但有时也会翻阅Spring1.2时代的《Spring Pro》

2006年版的,肯定是不会有新内容了。
如果要参考书籍的话,个人推荐官方的文档,即免费又准确、全面、还跟得上形势。

http://www.springsource.org/documentation

https://github.com/spring-projects/spring-framework


spring2.0 和 spring2.5的区别

  (2011-08-02 13:02:58)
转载
标签: 

it

分类: 技术

Spring经历了两次大修订,第一次是2006年10月的Spring2.0,另一次是2007年11月的Spring2.5。
简介:
1. JDK版本: JDK至少要1.4.2以上,如果仍然打算使用1.3的话就请用2.0.6/2.0.7版本吧。

(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进行了更新,使用时:   "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 的支持被去除。

 

 

2.5的新特性

Spring2.5rc1发布了,一直想知道它葫芦里卖什么药,以下是文档里的change.log

  • 1. JDK版本: JDK至少要1.4.2以上,如果仍然打算使用1.3的话就请用2.0.6/2.0.7版本吧。
  • 2. Jar包:SpringMVC 不再使用spring.jar 这个庞大的包了。 Spring-webmvc.jar, spring-webmvc-portlet.jar 可以在 lib/modules 目录下找到,而且对于Struts1.* 的支持的包也应该改成 spring-webmvc-struts.jar了。
  • 3. XML配置:推荐使用XML metadata格式,不过先前的DTD仍然支持。需要注意的一点是,Spring1.2的DTD继续使用“singleton”属性,但是新的Spring2.0 DTD不允许使用“singleton”属性了,改成“scope”属性来描述bean的生命周期。
  • 4. 废弃的类与方法:有些在先前版本标注过“@deprecated”的类与方法已经完全被废弃了。
  • 比如:
  • ResultReader : 被 RowMapper 接口取代。
  • BeanFactoryBootstrap : 考虑使用 BeanFactoryLocator 或自定义的bootstrap类来代替。
  • 5. Apache OJB:注意Spring源代码中已经完全把这个去掉了,但与之整合的类仍然可以在Spring Modules project找到。https://springmodules.dev.java.net/
  • 6. iBATIS:注意Spring已经不再支持iBATIS 的1.3版本了, 如果想继续的话,请升级到2.3以上吧。
  • 7. Hibernate:注意Spring已经不再支持Hibernate 3.1之前的版本了,也就是说2.1,3.0的版本也无法使用了。如果仍然要用的话,推荐使用Spring的2.0.6/2.0.7版本。
  • 8. JDO:注意Spring已经不支持JDO1.0了。同样,你可以升级到2.0以上版本,或者使用Spring的2.0.6/2.0.7版本。
  • 9. UrlFilenameViewController :这个东东我也没有接触过,这里,我就简单翻译一下吧。
  • “考虑到嵌套路径的请求,视图名称现在决定叫UrlFilenameViewController了,这是一个突破性的改变,并且意味着如果你从Spring1.* 升级到Spring2.0 你可以使用该类从而减少Spring Web MVC的配置工作。”

  spring2.0和spring2.5及以上版本的jar包区别 spring jar 包详解  2009-06-26 14:42:29

分类: 系统运维

spring jar 包详解
spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。
  除了spring.jar文件,Spring还包括有其它13个独立的jar包,各自包含着对应的Spring组件,用户可以根据自己的需要来选择组合自己的jar包,而不必引入整个spring.jar的所有类文件。
(1) spring-core.jar
这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。
(2) spring-beans.jar
这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI支持,引入spring-core.jar及spring- beans.jar文件就可以了。
(3) spring-aop.jar
这个jar文件包含在应用中使用Spring的AOP特性时所需的类。使用基于AOP的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。
(4) spring-context.jar
  这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如 Velocity、FreeMarker、JasperReports集成的类,以及校验Validation方面的相关类。
(5) spring-dao.jar
  这个jar文件包含Spring DAO、Spring Transaction进行数据访问的所有类。为了使用声明型事务支持,还需在自己的应用里包含spring-aop.jar。
(6) spring-hibernate.jar
  这个jar文件包含Spring对Hibernate 2及Hibernate 3进行封装的所有类。
(7) spring-jdbc.jar
  这个jar文件包含对Spring对JDBC数据访问进行封装的所有类。
(8) spring-orm.jar
  这个jar文件包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖 spring-dao.jar里的类,用这个包时你需要同时包含spring-dao.jar包。
(9) spring-remoting.jar
  这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。
(10) spring-support.jar
  这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java Mail、COS Mail)、任务计划Scheduling(Timer、Quartz)方面的类。
(11) spring-web.jar
  这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
(12) spring-webmvc.jar
  这个jar文件包含Spring MVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、 XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。
(13) spring-mock.jar
  这个jar文件包含Spring一整套mock类来辅助应用的测试。Spring测试套件使用了其中大量mock类,这样测试就更加简单。模拟HttpServletRequest和HttpServletResponse类在Web应用单元测试是很方便的。
  如何选择这些发布包,决定选用哪些发布包其实相当简单。如果你正在构建Web应用并将全程使用Spring,那么最好就使用单个全部的 spring.jar文件;如果你的应用仅仅用到简单的Inversion of Control / Dependency Injection(IoC/DI)容器,那么只需spring-core.jar与spring-beans.jar即可;如果你对发布的大小要求很高,那么就得精挑细选了,只取包含自己所需特性的jar文件了。采用独立的发布包你可以避免包含自己的应用不需要的全部类。当然你可以采用其它的一些工具来设法令整个应用包变小,节省空间的重点在于准确地找出自己所需的Spring依赖类,然后合并所需的类与包就可以了。Eclispe有个插件叫 ClassPath Helper可以帮你找找所依赖的类。
Spring包依赖说明:
1) spring-core.jar需commons-collections.jar,spring-core.jar是以下其它各个的基本。
2) spring-beans.jar需spring-core.jar,cglib-nodep-2.1_3.jar
3) spring-aop.jar需spring-core.jar,spring-beans.jar,cglib-nodep-2.1_3.jar,aopalliance.jar
4) spring-context.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,commons-collections.jar,aopalliance.jar
5) spring-dao.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring-context.jar
6) spring-jdbc.jar需spring-core.jar,spring-beans.jar,spring-dao.jar
7) spring-web.jar需spring-core.jar,spring-beans.jar,spring-context.jar
8) spring-webmvc.jar需spring-core.jar,spring-beans.jar,spring-context.jar,spring-web.jar
9) spring -hibernate.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-orm.jar,spring-web.jar,spring-webmvc.jar
10) spring-orm.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-web.jar,spring-webmvc.jar
11) spring -remoting.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-context.jar,spring-web.jar,spring-webmvc.jar
12) spring-support.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar
13) spring-mock.jar需spring-core.jar,spring-beans.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar
 
spring2.0和spring2.5及以上版本的jar包区别
Spring 2.5的Jar打包

在Spring 2.5中, Spring Web MVC 不再是 'spring.jar' 文件的一部分. Spring MVC以'spring-webmvc.jar' 和'spring-webmvc-portlet.jar'文件形式在发行包的 lib/modules 目录中存在。 另外,对Struts 1.x的支持被独立成 'spring-webmvc-struts.jar'

注意:经常被使用的的Spring的DispatcherServlet也是Spring Web MVC框架中的一部分。因此,就算你只是为了远程访问(例如,暴露Hessian或者 HTTP调用服务)而使用DispatcherServlet,你也得将'spring-webmvc.jar'(或者 'spring-webmvc-portlet/struts.jar')放到'spring.jar'旁边去。

Spring 2.0的 'spring-jmx.jar' 和 'spring-remoting.jar'已经被转移到 Spring 2.5的'spring-context.jar' (针对 JMX 和非HTTP 远程支持),部分转移到 'spring-web.jar' (针对HTTP 远程支持)。

Spring 2.0的 'spring-support.jar' 被改名为 'spring-context-support.jar', 更好的表达其真实含义。 'spring-portlet.jar' 被改名为 'spring-webmvc-portlet.jar',表明它是Spring Web MVC framework的子模块之一。 类似的, 'spring-struts.jar' 被改为'spring-webmvc-struts.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',表达其对test context framework的强烈关注。 注意 'spring-test.jar'包含了上个版本 'spring-mock.jar'中的一切,因此如果是单元或集成测试,可以直接取代。

Spring 2.5的 'spring-tx.jar' 取代了 'spring-dao.jar' 和'spring-jca.jar' 文件,表达其对transaction framework的强烈关注。

Spring 2.5 将其jar文件直接作为OSGi兼容的bundle。这使得在OSGi环境中使用Spring 更加方便,不再需要定制打包了。

你可能感兴趣的:(Spring 版本 区别)