spring 2.5和3.5的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 2.5和3.5的区别相关的知识,希望对你有一定的参考价值。

参考技术A 一、首先,模块的组织更加的细致,从那么多的jar分包就看的出来
二、新特性如下:

Spring Expression Language (Spring表达式语言)

IoC enhancements/Java based bean metadata (Ioc增强/基于Java的bean元数据)

General-purpose type conversion system and UI field formatting system (通用类型转换系统和UI字段格式化系统)

Object to XML mapping functionality (OXM) moved from Spring Web Services project (对象到XML映射功能从Spring Web Services项目移出)

Comprehensive REST support (广泛的REST支持)

@MVC additions (@MVC增强)

Declarative model validation (声明式模型验证)

Early support for Java EE 6 (提前对Java EE6提供支持)

Embedded database support (嵌入式数据库的支持)

三、针对Java 5的核心API升级

1、BeanFactory接口尽可能返回明确的bean实例,例如:

T getBean(String name, Class requiredType)

Map getBeansOfType(Class type)

Spring3对泛型的支持,又进了一步。个人建议泛型应该多用,有百利而无一害!

2、Spring的TaskExecutor接口现在继承自java.util.concurrent.Executor:

扩展的子接口AsyncTaskExecutor支持标准的具有返回结果Futures的Callables。

任务计划,个人还是更喜欢Quartz。

3、新的基于Java5的API和SPI转换器

无状态的ConversionService 和 Converters

取代标准的JDK PropertyEditors

类型化的ApplicationListener,这是一个实现“观察者设计模式”使用的事件监听器。

基于事件的编程模式,好处多多,在项目中应该考虑使用,基于事件、状态迁移的设计思路,有助于理清软件流程,和减少项目的耦合度
参考技术B 3.2起可以完全不用xml配置了

深度解析Spring源码编译Spring源码(spring5.2.x版本)

在学习Spring之前,我们需要先编译Spring源码。我们常说的spring就是spring framework。

spring官网:https://spring.io/

工具:idea2020.1,jdk8,构建工具gradle。

1.使用git下载spring源码

 
   
   
 
  1. git clone https://github.com/spring-projects/spring-framework.git

由于github下载速度比较慢,我们可以使用国内的码云镜像快速下载,或者你可以使用科学上网。

我们在码云中搜索spring-framework,找到 Gitee极速下载:

码云链接:https://gitee.com/mirrors/Spring-Framework.git

深度解析Spring源码(一)编译Spring源码(spring5.2.x版本)

哒哒哒,30s下载完成。

2.首先切换到spring目录,并将分支切换到我们想编译的5.2.x

 
   
   
 
  1. $ cd spring-framework/


  2. $ git checkout 5.2.x

  3. Updating files: 100% (1548/1548), done.

  4. Switched to a new branch '5.2.x'

  5. Branch '5.2.x' set up to track remote branch '5.2.x' from 'origin'.

输入命令,进行编译:

 
   
   
 
  1. ./gradlew build

在这个过程中git会自动帮我们下载gradle,只需耐心等待,大概需要40分钟。

当出现以下内容时说明gradle已经构建spring源码成功。

深度解析Spring源码(一)编译Spring源码(spring5.2.x版本)

注意:出现绿色字体BUILD SUCCESSFUL就代表编译成功,出现的错误不用理会。

3.将spring源码导入idea

但是在导入idea之前,还有最后一步:预编译spring-oxm 与 ./gradlew :spring-oxm:compileTestJava

输入命令进行预编译:

 
   
   
 
  1. ./gradlew :spring-oxm:compileTestJava

深度解析Spring源码(一)编译Spring源码(spring5.2.x版本)

然后导入到idea中:(File -> New -> Project from Existing Sources -> 找到你的spring文件夹 -> 选择 build.gradle)

在耐心的等待后,我们就可以编码了。

若有需要额外下载jar包,我们可以修改 build.gradle 文件使用阿里云仓库进行加速:

repositories { mavenCentral() maven { url "http://maven.aliyun.com/nexus/content/groups/public" } maven { url "https://repo.spring.io/libs-spring-framework-build" } }

深度解析Spring源码(一)编译Spring源码(spring5.2.x版本)

当出现编译成功且左边的项目变为加粗黑体,就代表我们编译成功了!

此时就可以愉快的撸码了。

4.愉快的撸码

右键new一个moudle,选择gradle。

深度解析Spring源码(一)编译Spring源码(spring5.2.x版本)

在build.gradle中引入spring-context依赖:

 
   
   
 
  1. dependencies {

  2. compile(project(":spring-context"))

  3. testCompile group: 'junit', name: 'junit', version: '4.12'

  4. }

5.代码测试

由下图可以看到,每次都需要编译全文,很麻烦,我们可以通过修改配置更改编译方式:

深度解析Spring源码(一)编译Spring源码(spring5.2.x版本)

修改路径:-->File-->Settings-->Build,Excution,Deployment-->BuildTools-->Gradle

深度解析Spring源码(一)编译Spring源码(spring5.2.x版本)



以上是关于spring 2.5和3.5的区别的主要内容,如果未能解决你的问题,请参考以下文章

Spring注解@Component@Repository@Service@Controller区别

Spring 2.5

SSM 三大框架系列:Spring 5 + Spring MVC 5 + MyBatis 3.5 整合(附源码)

spring 2.5 扫描注入问题

Spring框架-第三篇

maven spring3.2.5