Spring Framework 系统架构总览图

mesos架构中 framework执行器 framework模块_Java

Spring Framework的模块依赖关系图

mesos架构中 framework执行器 framework模块_初始化_02

Spring Framework各个模块功能说明

Spring核心模块

模块名称

主要功能

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表达式语言

Spring 切面编程相关

模块名称

主要功能

Spring-Aop

面向切面编程模块

Spring-Aspecrts

集成AspectJ

Spring-Instrument

动态的Class Loading模块

Spring数据访问集成

名称

主要功能

Spring-JDBC

Spring提供的JDBC抽象框架主要实现 模块,用于简化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.能够发送和接收信息

Spring Web相关的组件

名称

主要功能

Spring-Web

spring-web提供了最基础Web支持,主要建立于核心容器之上,通过Servlet或者Listeners来初始化IOC容器

Spring-WebMVC

实现了Spring MVC(model-view-Controller)的Web应用

Spring-WebSocket

主要是与Web前端的全双工通讯的协议

Spring-WebFlux

一个新的非堵塞函数式Reactive Web框架,可以用来建立异步的,非阻塞,事件驱动的服务

Spring通信报文相关

模块名称

主要功能

Spring——Messaging

主要职责是为Spring框架集成一些基础的报文传输应用

Spring测试相关

名称

主要功能

Spring-test

主要为程序测试提供

Spring集成兼容

名称

主要功能

Spring-Framework-BOM

BOM of Materials解决Spring的不同模块的依赖版本问题

实现基本功能Spring的思路

  1. 配置阶段
  • 配置Web.xml DisppatcherServler
  • 设定init-param contextConfigLoacation=classpath:application.xml
  • 设定url-pattern /*
  • 配置Annotation @Controller @Service @Auotwirted @RequestMapper
  1. 初始化阶段
  • 调用init方法 加载配置文件
  • IOC容器初始化 Map<String,Object>
  • 扫描相关的类 scan-package=‘你的包’
  • 创建实例并保存到容器 通过反射机制将类实例化放到IOC容器

IOC

  • 进行DI操作 扫描IOC容器的实例,给没有复制的属性自动复制

DI

  • 初始化HandMapping 将URL和一个Method一对一映射关联

MVC

  1. 运行阶段
  • 调用doPost()方法/doGet()方法 Web容器调用doPost/doGet,获得request/response
  • 匹配HandMappingrequest对象中获得用户输入的url,找到其对应的Method
  • 反射调用method.invoker() 利用反射调用方法并返回结果
  • respone.getWrite().write 将结果输出到浏览器

说明

本文章为作者读书笔记及感悟,其中参考了《spring5核心原理与30个类手写实战》以及互联网上的内容。如有错误,请评论或者私聊我,欢迎探讨技术问题