`

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


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

分享到:
评论

相关推荐

    Struts2.3.15.1版本升级到2.3.32详细流程

    ### Struts2.3.15.1版本升级到2.3.32详细流程 #### 背景概述 Apache Struts是一个流行的用于构建企业级Java Web应用程序的开源框架。Struts2作为Struts框架的第二代产品,提供了一个灵活的架构来支持MVC设计模式,...

    Spring Boot中文文档.rar

    从早期版本的Spring Boot升级 11.开发您的第一个Spring Boot应用程序 11.1.创建POM 11.2.添加Classpath依赖项 11.3.编写代码 11.3.1.@RestController和@RequestMapping Annotations 11.3.2.@...

    Spring Boot参考指南.pdf

    - **从Spring Boot早期版本升级**:给出升级指南,帮助开发者顺利迁移至最新版本。 #### 三、开发你的第一个Spring Boot应用 - **创建POM**:说明如何使用Maven项目对象模型文件(POM)来管理项目依赖。 - **添加...

    mybatis-spring集成

    在集成时,需要在类路径中包含mybatis-spring-x.x.x.jar文件,如果是使用Maven进行项目管理,需要在pom.xml中添加相应的依赖。 在MyBatis-Spring集成中,通常需要在Spring应用上下文中定义至少两个关键组件:...

    CXF-3.1.11jar包

    4. **Spring框架集成**:描述中提到CXF与Spring集成良好,这意味着开发者可以利用Spring框架的强大功能,如依赖注入和AOP(面向切面编程),来管理CXF服务的生命周期和行为。 5. **多种协议支持**:CXF不仅限于HTTP...

    30分钟学会STRUTS2.ppt

    3. **API独立性**:Struts2的代码不依赖特定API,升级过程更简单。 4. **输入处理**:Struts2允许直接使用Action类的属性作为输入,无需创建专门的ActionForm类。 5. **线程安全性**:每个线程在Struts2中拥有自己的...

    jar冲突问题解决方法记录

    3. **升级或降级依赖**:检查冲突的jar是否可以升级到兼容的新版本,或者降级到不影响其他库的旧版本。 4. **使用类加载器策略**:通过自定义类加载器,可以控制类的加载顺序,优先加载特定版本的类,以解决冲突。 ...

    解决第三方包导入冲突

    - **升级或降级依赖**:将所有库更新到最新版本,或者统一为较旧的兼容版本,以消除冲突。 总之,解决第三方包导入冲突是一个技术性和实践性并重的过程。理解冲突的原理,熟练运用各种解决策略,将有助于保持项目的...

    CXF webservice 示例

    - 首先,需要在项目中添加CXF和Spring的依赖库,包括CXF的jar包以及描述的Spring jar包。 - 创建服务接口,使用JAX-WS注解来定义服务的端点、操作等。 - 实现服务接口,并配置CXF来暴露此服务。可以使用Spring的`...

    struts 2.3.8 zip

    Struts 2是Struts 1的升级版,它合并了WebWork框架的优点,引入了更多功能和改进。该框架的主要目标是简化Java Servlet和JSP的开发,通过提供一组预定义的控制器、拦截器和模板技术,帮助开发者构建更加结构化的应用...

    tomcat 出现 OutOfMemoryError 的解决方法

    - 使用类库合并工具(如 JAR Jar)将多个 jar 包合并为一个,从而减少类的数量。 3. **升级 JDK 版本**: - 从 JDK 8 开始,PermGen space 已被永久代 (metaspace) 替换。Metaspace 使用本地内存而非堆内存,因此...

    Activiti 5.13 中文用户手册 PDF版

    - **数据库升级**:提供升级指南以适应新版本的需求。 - **启用 Job 执行器**:用于调度定时任务的关键组件。 - **配置邮件服务器**:实现邮件通知等功能。 - **配置历史**:记录流程执行的历史信息,方便审计和...

Global site tag (gtag.js) - Google Analytics