源码学习之Spring (系统架构简单解析)

Spring Framework 系统架构总览图

file

Spring Framework的模块依赖关系图

file

Spring Framework各个模块功能说明

Spring核心模块

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

Spring 切面编程相关

模块名称
主要功能
Spring-Aop
面向切面编程模块
Spring-Aspecrts
集成AspectJ
Spring-Instrument动态的Class Loading模块

Spring数据访问集成

名称
主要功能
Spring-JDBCSpring提供的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-BOMBOM of Materials解决Spring的不同模块的依赖版本问题

实现基本功能Spring的思路

  1. 配置阶段
    • 配置Web.xml DisppatcherServler
    • 设定init-param contextConfigLoacation=classpath:application.xml
    • 设定url-pattern /*
    • 配置Annotation @Controller @Service @Auotwirted @RequestMapper
  2. 初始化阶段
    • 调用init方法 加载配置文件
    • IOC容器初始化 Map
    • 扫描相关的类 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个类手写实战》以及互联网上的内容。如有错误,请评论或者私聊我,欢迎探讨技术问题 。即将毕业,在准备找工作,有朋友想给我介绍的,欢迎添加微信:sllbiao。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值