Skip to content

1 Spring基础

Spring框架核心功能包含依赖注入、事务管理、Web应用、数据访问、消息发送等。

Spring Framework 手册:https://docs.spring.io/spring-framework/docs/

Spring Framework 各个版本重大变化

版本特性
Spring Framework 1.01. 所有代码都在一个项目中 2. 支持核心功能IoC、AOP 3. 内置支持Hibernate、iBatis等第三方框架 4. 对第三方技术简单封装。如:JDBC、Mail、事务等 5. 只支持XML配置方式。
Spring Framework 2.01. 最重要的变化:支持注解配置 2. 增加对ehcache支持 3. 对JMS(Java消息服务)、JMX(Java管理扩展)等支持
Spring Framework 3.01. 支持Java类的配置 2. 由原来的一个项目拆分成多个子模块。 3. 添加单元测试子模块
Spring Framework 4.01. 全面支持Java 8 2. 添加二级子项目 Spring MVC ,基于Servlet 3.0开发 3. 提供WebSocket支持。 4. 引入@RestController等注解,增强对Restful的支持。
Spring Framework 5.01. 最低环境要求Java 8 2. 日志整合。把原来commons-logging 封装后变为spring-jcl模块 3. 跨域更改。把原来的JSONP支持变更为修改响应头的@CrossOrigin注解。 4. 响应式编程。添加二级子项目WebFlux 5. 使用Kotlin(科特林)进行函数式编程
Spring Framework 6.01. 最低环境要求Java 17 2. 加强对响应式编程支持。添加子模块spring-r2dbc 3. 取消子模块spring-orm-hibernate4,只保留spring-orm,只支持Hibernate5。

Spring 各个版本的特性

01. Spring Framework 1.0 详情见:https://docs.spring.io/spring-framework/docs/1.2.x/reference/

  • 基于 AOP 联盟接口的 AOP 拦截框架,与核心容器集成
  • JNDI 支持类,可轻松将 Spring 管理的 Bean 与 JNDI 定位的对象连接起来
  • 应用上下文概念,提供资源加载和信息访问抽象
  • 具有可插拔策略的通用事务管理,支持声明式和编程式分界
  • 支持源代码级元数据,将共享属性作为默认实现(例如事务属性)
  • 通用 DAO 支持,提供通用数据访问异常层次结构,可与任何数据访问策略配合使用
  • 简化资源和错误处理的 JDBC 抽象,还包括 BLOB/CLOB 支持
  • 支持 Hibernate,提供会话工厂管理和事务范围的线程本地会话
  • 支持 JDO 1.0 和 iBATIS SQL Maps 1.3/2.0 的类,并与 Spring 的事务管理相集成
  • 邮件发送器抽象,特别支持 JavaMail,包括方便地处理文件附件
  • 为 Quartz 和 Timer 提供调度支持,轻松调用 Spring 管理的 Bean 方法
  • 为 RMI、JAX-RPC 和 Caucho's Hessian/Burlap 提供远程支持,以便轻松公开 Spring 管理的 Bean
  • 访问和实现 EJB(本地和远程)的方便类
  • 网络应用上下文,用于在网络环境中加载 Spring 应用上下文
  • 灵活的网络 MVC 框架,基于策略界面构建,并与各种视图技术相结合,Spring MVC 、Struts。
  • 只支持XML 配置,不支持注解配置

02. Spring Framework 2.0 详情见:https://docs.spring.io/spring-framework/docs/2.0.0/reference/new-in-2.html

03. Spring Framework 3.0 详情见:https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-3.x

详细内容

04. Spring Framework 4.0 详情见:https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-4.x

详细内容

05. Spring Framework 5.0 详情见:https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-5.0-Release-Notes#new-and-noteworthy

详细内容

06. Spring Framework 6.0 详情见:https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-6.0-Release-Notes

详细内容

Spring Framework 包含的模块

  • Test

    模块功能
    spring-test单元测试框架,支持JUnit、TestNG和Hamcrest
  • Core Container

    模块功能
    spring-core核心容器,提供依赖注入、事务管理、Web应用、数据访问、消息发送等
    spring-context应用上下文,提供资源加载和信息访问抽象
    spring-beans对象管理
    spring-expression表达式语言.可以通过表达式快速获取容器内容
    spring-jcl日志框架
  • AOP

    模块功能
    spring-aopAOP框架,支持声明式和编程式分界
  • AspectJ Integration

    模块功能
    spring-aspectsAspectJ集成,支持AOP和事务管理
  • Instrumentation

    模块功能
    spring-instrumentInstrumentation框架,支持对JVM的扩展
  • Messaging

    模块功能
    spring-messaging消息框架,支持JMS和WebSocket
  • Data Access

    模块功能
    spring-jdbcJDBC框架,提供通用数据访问异常层次结构,并可与任何数据访问策略配合使用
    spring-ormORM框架,提供Hibernate、iBATIS SQL Maps、JDO 1.0和Spring事务管理
    spring-tx事务管理框架,支持声明式和编程式分界
    spring-r2dbcR2DBC框架,提供通用数据访问异常层次结构,并可与任何数据访问策略配合使用
    spring-jmsJMS框架,提供JMS支持
  • Web

    模块功能
    spring-webmvcMVC框架,提供基于策略的MVC框架,并支持各种视图技术
    spring-webWeb框架,提供通用的Web支持,包括HTTP请求处理、视图渲染和错误处理
    spring-websocketWebSocket框架,提供WebSocket支持
    spring-webfluxWebFlux框架,提供响应式编程支持