1.Spring是什么
Spring是一款主流的JAVA EE轻量级开源框架,用于简化企业级应用的开发难度和开发周期。
官网:spring.io
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 模块组成
①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及以上