码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-12-21 22:54:41      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:基础   类实例化   ber   table   ota   mamicode   创建   并保存   data   

Spring Framework 系统架构总览图

技术图片

Spring Framework的模块依赖关系图

技术图片

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
  2. 初始化阶段

    • 调用init方法 加载配置文件
    • IOC容器初始化 Map<String,Object>
    • 扫描相关的类 scan-package=‘你的包’
    • 创建实例并保存到容器 通过反射机制将类实例化放到IOC容器

    IOC


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

    DI


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

    MVC


  3. 运行阶段

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

说明

本文章为作者读书笔记及感悟,其中参考了《spring5核心原理与30个类手写实战》以及互联网上的内容。如有错误,请评论或者私聊我,欢迎探讨技术问题 。即将毕业,在准备找工作,有朋友想给我介绍的,欢迎添加微信:sllbiao。

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

标签:基础   类实例化   ber   table   ota   mamicode   创建   并保存   data   

原文地址:https://www.cnblogs.com/sllbwcoding/p/12078414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!