Spring-概述

Spring-概述

Spring是什么

Spring是一个开源的Java基础框架,它为Java应用提供了全面的基础设施支持。Spring是由Rod Johnson提出并创立。Spring的核心目标是简化Java开发,使得开发者可以更专注于业务逻辑而非底层实现。
Spring框架自2002年首次发布以来,经历了多个重要版本的迭代,目前最新发布的正式版本已经到了6.2.x系列。

Spring的含义

广义上的Spring

广义上Spring通常指的是Spring全家桶,它是一个庞大的生态系统,包含了一系列相互关联的框架和工具,旨在简化企业级Java开发。Spring全局桶涵盖了从Web开发、数据访问、安全性、云原生应用到微服务架构等多个领域。
主要组件包括:
1.Spring Framework: 核心组件,提供IOC容器、AOP、事务发布、数据访问等功能。
2.Spring MVC: Web框架,用于构建Web应用程序。
3.Spring Boot: 简化Spring应用的创建、配置和部署。
4.Spring Data: 提供与数据存储技术集成的统一简化的API。
5.Spring Security: 安全框架,提供认证和授权服务。
6.Spring Cloud: 微服务框架,支持服务发现、配置管理、断路器等。
7.Spring Batch: 批处理框架,用于开发企业级批处理应用程序。
8.Spring Session: 提供分布式会话管理。
9.Spring WebSocket: 支持WebSocket通信。
10.Spring Reactive: 响应式编程模型,支持异步、非阻塞的应用程序。

狭义上的Spring

狭义上Spring通常指的是Spring Framework,它是Spring生态系统的核心和基础。Spring Framework提供了一个控制反转(IOC)容器和面向切面编程(AOP)框架,以及事务管理、数据访问、MVC Web框架等核心功能。它是一个轻量级的、非侵入式的框架,旨在简化Java企业级应用的开发。

Spring Framework的主要特点

  • 控制反转(IoC)和依赖注入(DI)
控制反转(Inversion of Control):Spring通过Ioc容器管理对象的生命周期和依赖关系,实现了控制反转。
依赖注入(Dependency Injection): 依赖注入使得组件之间的依赖关系由容器在运行时注入,降低了组件之间的耦合度。
  • 面向切面编程(AOP)
Spring提供了AOP(Aspect Oriented Programming)的支持,允许开发者定义横切关注点,如日志、安全和事务管理,而不需要修改核心业务逻辑代码。
  • 数据访问抽象层
Spring提供了一套数据访问抽象层,用于简化数据库操作,如JdbcTemplate,JpaTemplate等。
  • 声明式事务管理
Spring提供了声明式的事务管理机制,通过配置文件或注解来声明事务边界,而不是在代码中显式地管理事务。
  • Spring MVC模型
Spring提供了一个完整的MVC(Model-View-Controller)框架,用于简化Web应用程序的开发。
  • 轻量级
Spring框架本身是非侵入式的,不需要实现特定的接口或继承特定的类。
  • 国际化
Spring支持国际化,可以很容易地实现多语言支持。
  • 灵活的配置方式
Spring支持多种配置方式,包括XML配置、注解配置以及Java配置。

Spring Framework的核心模块及其依赖关系

1.Spring Core Container(核心容器)

  • spring-core: 核心工具类,Spring其他模块的基础。
  • spring-beans: 依赖spring-core,提供BeanFactory,管理Bean的创建和生命周期。
  • spring-context: 依赖spring-corespring-beans,提供ApplicationContext,扩展BeanFactory,增加国际化、事件传播、资源加载等支持。
  • spring-expression: 依赖spring-core,提供Spring表达式语言(SpEL)。

2.Spring AOP(面向切面编程)

  • spring-aop: 依赖spring-corespring-beansspring-context,提供AOP支持。
  • spring-aspects: 集成AspectJ,AOP应用框架。

3.Spring Data Access/Integration(数据访问/集成)

  • spring-jdbc: 依赖spring-corespring-beansspring-context,提供JDBC抽象层,简化JDBC操作。
  • spring-tx: 依赖spring-corespring-beansspring-context,提供事务管理功能。
  • spring-orm: 依赖spring-corespring-beansspring-contextspring-jdbc,提供对ORM框架的集成支持。

4.Spring Web

  • spring-web: 依赖spring-corespring-beansspring-context,提供基本的Web功能。
  • spring-webmvc: 依赖spring-corespring-beansspring-contextspring-web,提供MVC架构和Web应用的各种功能。

核心模块说明

  • spring-core是最基础的模块,其他所有模块都依赖它。
  • spring-beansspring-context构成了Spring的核心容器,提供了IoC和依赖注入的功能。
  • spring-aopspring-jdbcspring-txspring-orm是在核心容器基础上提供的高级功能模块。
  • spring-webspring-webmvc是用于Web开发的模块,依赖于核心容器和其他数据访问模块。

Spring Framework的版本

Spring Framework支持的版本

  • 7.0.x将是下一代主要版本(2025年11月)。
  • 6.2.x是即将推出的feature分支(2024年11月)。
  • 6.1.x是截至2023年11月的主要生成线。
  • 6.0.x是2022年11月新一代框架的开始,以JDK17和Jakarta EE 9为基准。开源支持已于2024年8月31日结束。
  • 5.3.x是第5代的最后一个feature分支,在JDK8、JDK11、JDK17、JDK21和Java EE 8级别提供长期支持。开源支持已于2024年8月31日结束。
  • 4.3.x已于2020年12月31日达到其官方EOL(end of life 生命周期终止)。该路线没有进一步的维护和安全补丁计划。
  • 3.2.x已于2016年12月31达到其官方EOL(生命周期终止)。该路线没有进一步的维护和安全补丁计划。

JDK与Spring Framework的对应版本

Spring Framework版本 JDK版本
7.0.x JDK 17-27(预期)
6.2.x JDK 17-25(预期)
6.1.x JDK 17-23
6.0.x JDK 17-21
5.3.x JDK 8-21

Java/Jakarta EE与Spring Framework的对应版本

Spring Framework版本 Java/Jakarta EE
7.0.x Jakarta EE 11(jakarta命名空间)
6.2.x Jakarta EE 9-10(jakarta命名空间)
6.1.x Jakarta EE 9-10(jakarta命名空间)
6.0.x Jakarta EE 9-10(jakarta命名空间)
5.3.x Java EE 7-8(javax命名空间)

参考资料

https://github.com/spring-projects/spring-framework
https://spring.io/projects/spring-framework
https://docs.spring.io/spring-framework/reference/index.html
https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions

posted @   柯南。道尔  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示