spring 2.x 版本升级 spring 3.x (各jar的说明、依赖、合并)

一. 起因

    因为在项目中遇到spring版本升级,spiring 3.1.0.CI-995 升级到 3.1.0.RELEASE,同样是3.1.0,但是包间的关系相差甚多,导致maven直接修改版本号后,spring相关包不存在。程序不能正常编译。

    尝试通过maven中不能通过的项修改回原来的版本号,代码编译成功,但是运行是报错。原因很简单,3.1正式版要比之前的过渡版本修改的内容多很多,有很多修改,原有的配置文件中的配置项不在被使用。

    配置文件按exception的信息修正后,代码正常启动。那么在保障程序正常启动后,就需要考虑一个问题了,为什么那些spring相关的包没有正式版呢?
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<!-- <version>3.0.7.RELEASE</version> -->
		<version>3.1.0.RELEASE</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-web</artifactId>
		<version>3.1.0.RELEASE</version>
		<type>jar</type>
		<scope>compile</scope>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-core</artifactId>
		<version>3.1.0.RELEASE</version>
		<type>jar</type>
		<scope>compile</scope>
	</dependency>
	......
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-transaction</artifactId>
		<version>3.1.0.CI-995</version>
		<type>jar</type>
		<scope>compile</scope>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-web-portlet</artifactId>
		<version>3.1.0.CI-995</version>
		<type>jar</type>
		<scope>compile</scope>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-web-servlet</artifactId>
		<version>3.1.0.CI-995</version>
		<type>jar</type>
		<scope>compile</scope>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-web-struts</artifactId>
		<version>3.1.0.CI-995</version>
		<type>jar</type>
		<scope>compile</scope>
	</dependency>


二. 大版本升级后的包合并
Spring 2.0 --> 2.5
'spring-support.jar' --> 'spring-context-support.jar'
'spring-portlet.jar' --> 'spring-webmvc-portlet.jar'
'spring-struts.jar'  --> 'spring-webmvc-struts'
'spring-jmx.jar'     --> 'spring-context.jar' 
'spring-remoting.jar'--> 'spring-context.jar'

Spring 3.1.0
'spring-transaction' --> 'spring-tx'
'spring-web-servlet' --> 'spring-webmvc'
'spring-web-struts'  --> 'spring-webmvc'

Spring 3.2.0
'spring-arm' --> 'spring-core'


三. spring各jar说明
spring3.1新特性:
Spring 3.1与之前2.X的不一样,新版本把原来的spring.jar分解了,想要使用哪个功能就导入相应的jar,现给出一些包的说明
 // Spring的面向切面编程,提供AOP(面向切面编程)实现 
org.springframework.aop-3.1.0.RELEASE

// Spring独立的asm程序,相遇Spring2.5.6的时候需要asmJar包.3.0开始提供他自己独立的asmJar 
org.springframework.asm-3.1.0.RELEASE

// Spring提供对AspectJ框架的整合
org.springframework.aspects-3.1.0.RELEASE

// SpringIoC(依赖注入)的基础实现
org.springframework.beans-3.1.0.RELEASE

// Spring-context的扩展支持,用于MVC方面
org.springframework.context.support-3.1.0.RELEASE

// Spring提供在基础IoC功能上的扩展服务,此外还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问、缓存以及各种视图层框架的封装等
org.springframework.context-3.1.0.RELEASE

// Spring3.1的核心工具包 
org.springframework.core-3.1.0.RELEASE

// Spring表达式语言 
org.springframework.expression-3.1.0.RELEASE

// Spring3.1对Tomcat的连接池的集成 
org.springframework.instrument.tomcat-3.1.0.RELEASE

// Spring3.1对服务器的代理接口
org.springframework.instrument-3.1.0.RELEASE

// 对JDBC的简单封装
org.springframework.jdbc-3.1.0.RELEASE

// 为简化JMS API的使用而作的简单封装 
org.springframework.jms-3.0.0.RELEASE

// 整合第三方的ORM框架,如hibernate,ibatis,jdo,以及spring的JPA实现 
org.springframework.orm-3.1.0.RELEASE

// Spring对Object/XMl的映射支持,可以让Java与XML之间来回切换 
org.springframework.oxm-3.1.0.RELEASE

// 对Junit等测试框架的简单封装 
org.springframework.test-3.1.0.RELEASE

// 为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理 
org.springframework.transaction-3.1.0.RELEASE

// SpringMVC的增强 
org.springframework.web.portlet-3.1.0.RELEASE

// 对JEE6.0Servlet3.0的支持
org.springframework.web.servlet-3.1.0.RELEASE

// 整合Struts的时候的支持
org.springframework.web.struts-3.1.0.RELEASE

// SpringWeb下的工具包
org.springframework.web-3.1.0.RELEASE


四. 包间依赖
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-content):   
==> 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-test):     
==> spring-core.jar
==> spring-beans.jar
==> spring-dao.jar
==> spring-context.jar
==> spring-jdbc.jar


注意:因为部分内容是网上直接引用过来,我并没有去验证,所以肯定有不准确的地方,仅用于参考使用。

你可能感兴趣的:(spring,spring-mvc)