【Spring6】Spring是什么

发布时间 2023-03-22 21:11:50作者: 植树chen

1.Spring是什么

Spring是一款主流的JAVA EE轻量级开源框架,用于简化企业级应用的开发难度和开发周期。

官网:spring.io
image

2.Spring划分

2.1 广义

指Spring生态,以Spring Framework为核心的spring技术栈。
如:Spring Framework、SpringMVC、SpringBoot等。

2.2 狭义

指Spring Framwork,通常称为Spring框架。
两个核心模块:
IOC:控制反转,把创建对象过程交给Spring进行管理。
AOP:面向切面编程,不改变原代码(或很少)的基础上增加功能。

3.Spring Framework特点

  • 非侵入式:使用Spring时不需要依赖其他组件。
  • 控制反转:把创建对象过程交给Spring进行管理。
  • 面向切面编程:在不修改源代码的基础上增强功能。
  • 容器:Spring IOC是一个容器,包含组件对象的生命周期。
  • 组件化:Spring 通过简单的组合配置实现复杂应用,并维护该应用之间的组件。
  • 一站式:Spring生态。

4.Spring 模块组成

image

①Spring Core(核心容器)

spring core提供了IOC,DI,Bean配置装载创建的核心实现。核心概念: Beans、BeanFactory、BeanDefinitions、ApplicationContext。

  • spring-core :IOC和DI的基本实现

  • spring-beans:BeanFactory和Bean的装配管理(BeanFactory)

  • spring-context:Spring context上下文,即IOC容器(AppliactionContext)

  • spring-expression:spring表达式语言

②Spring AOP

  • spring-aop:面向切面编程的应用模块,整合ASM,CGLib,JDK Proxy
  • spring-aspects:集成AspectJ,AOP应用框架
  • spring-instrument:动态Class Loading模块

③Spring Data Access

  • spring-jdbc:spring对JDBC的封装,用于简化jdbc操作
  • spring-orm:java对象与数据库数据的映射框架
  • spring-oxm:对象与xml文件的映射框架
  • spring-jms: Spring对Java Message Service(java消息服务)的封装,用于服务之间相互通信
  • spring-tx:spring jdbc事务管理

④Spring Web

  • spring-web:最基础的web支持,建立于spring-context之上,通过servlet或listener来初始化IOC容器
  • spring-webmvc:实现web mvc
  • spring-websocket:与前端的全双工通信协议
  • spring-webflux:Spring 5.0提供的,用于取代传统java servlet,非阻塞式Reactive Web框架,异步,非阻塞,事件驱动的服务

⑤Spring Message

  • Spring-messaging:spring 4.0提供的,为Spring集成一些基础的报文传送服务

⑥Spring test

  • spring-test:集成测试支持,主要是对junit的封装

5.Spring6要求

① IDEA开发工具:2021.3以上(2020版本最高支持jdk14)
② JDK17及以上
③ Spring:6.0及以上