Spring架构图

image.png

Core Container

spring-core:依赖注入IOC与DI的最基本实现
spring-beans:Bean工厂与Bean的装配
spring-context:定义基础的Spring的Context上下文即IOC容器
spring-context-support:对Spring IOC容器的扩展支持,以及IOC子容器
spring-context-indexer:Spring的类管理组件和Classpath扫描
spring-expression:Spring表达式语言

image.png

AOP and Instrumentation

spring-aop:面向切面编程的应用模块,整合Asm,CGLIb、JDKProxy
spring-aspects:集成AspectJ,AOP应用框架
spring-instrument:提供类检测支持和类加载器实现,以在某些应用程序服务器中使用
spring-messaging:从Spring4开始新加入的一个模块,主要职责是为Spring 框架集成一些基础的报 文传送应用
image.png

Data Access/Integration

spring-jdbc:Spring 提供的JDBC抽象框架的主要实现模块,用于简化Spring JDBC操作
spring-tx:Spring JDBC事务控制实现模块
spring-orm:主要集成 Hibernate, Java Persistence API (JPA) 和 Java Data Objects (JDO)
spring-oxm:将Java对象映射成XML数据,或者将XML数据映射成Java对象
spring-jms:Java Messaging Service能够发送和接收信息
image.png

Web

spring-web:提供了最基础Web支持,主要建立于核心容器之上,通过Servlet或者Listeners来 初始化IOC容器。
spring-webmvc:实现了Spring MVC(model-view-Controller)的Web应用。提供了最基础Web支持,主要建立于核心容器之上,通过Servlet或者Listeners来初始化IOC容器。
spring-websocket:主要是与Web前端的全双工通讯的协议。
spring-webflux:一个新的非堵塞函数式 Reactive Web 框架,可以用来建立异步的,非阻塞,事件驱动的服务。
image.png

执行流程

Spring源码.png

常用接口

BeanFactory

Aware

BeanDefinition

BeanDefinitionReader

BeanFactoryPostProcessor

BeanPostProcessor

Environment

FactoryBean

用于创建对象

org.springframework.beans.factory.support.DefaultListableBeanFactory
_/* Map of bean definition objects, keyed by bean name. /
_private final Map beanDefinitionMap = new ConcurrentHashMap<>(256);

实现classpathxmlapplicationcontext initPorpertySources