SpringMVC注解开发运行原理

2023-05-16

服务器初始化过程:

1:服务器初始化 加载继承 AbstractDispatcherServletInitializer即springmvc定义的代替web.xml的

类初始化web容器

然后重写三个方法:

one:


createServletApplicationContext 方法 返回值为WebApplicationContext(sprigmvc容器)
新建一个WebApplicationContext子类AnnotationConfigWebApplicationContext调用register方法注册springmvc的配置文件进入 再返回子类   

目标

加载springmvc的配置文件 查看配置文件设置的注解扫描路径下的controller注解标志的Bean 对controller标志的Bean 进行加载该Bean下的RequestMapping注解 跟据其名称对应具体方法

two:


getServletMappings返回值是字符串数组在方法内部加需要被springmvc管理的路径 然后返回  

目的:


设置那些路径交给springmvc控制器处理  即需要被mvc拦截处理的路径  

three:


createRootApplicationContext和第一个方法差不多返回值也一样 只不过他是用于创建加载的spring的配置  

单次请求过程:

1:客户端发送HTTP请求到服务端

2:服务端初始化好的web容器判断该请求是否被springmvc管理

3:让该管理解析请求的路径

4:在RequestMapping中进行路径匹配

5:匹配成功调用方法

6:检查有无responsBody注解 即看看返回值是什么形式返回

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringMVC注解开发运行原理 的相关文章

随机推荐

  • 爬虫实战(三)

    随着互联网的不断发展 xff0c 网络数据的规模和价值也不断提升 在这个大数据时代 xff0c 如何从海量数据中提取有价值的信息并加以利用 xff0c 成为了数据科学 商业分析 金融预测 社会研究等领域中一个重要的问题 而网络爬虫作为一种数
  • Linux (9)引导过程与服务控制

    本章结构 1 Linux操作系统引导过程 2 排除启动类故障 3 服务控制及切换运行级别 4 优化启动过程 1 Linux操作系统引导过程 linux系统引导过程 1 开机自检 服务器主机开机以后 xff0c 将根据主板 BIOS 中的设置
  • Android App开发之Jetpack架构,从思维图到基础再到深入

    在UI组件日益完善的同时 xff0c 也开始出现了RecyclerView ConstraintLayout MotionLayout等一些可以辅助大家写出更加符合性能要求的界面效果 在UI控件日益满足需求的同时 xff0c 系统的安全与稳
  • Android-Notes|BottomNavigationView-爱上-Lottie,kotlin声明数组

    selected xff1a 选中才显示标题 xff1b labeled xff1a 标题一直显示 xff1b unlabeled xff1a 只显示 icon xff0c 不显示标题 2 Lottie 对于这个东东 xff0c 不知道说啥
  • Linux生产者消费者与信号量

    目录 一 生产者消费者概念 二 模拟实现基于阻塞队列的生产消费模型 2 1概念 2 2构造阻塞队列 三 信号量 3 1原理 3 2信号量函数 3 3信号量模拟互斥功能 一 生产者消费者概念 生产者消费者模式就是通过一个容器来解决生产者和消费
  • 短视频文案怎么写?优质短视频文案写作技巧

    抖音短视频的质量仔细推敲起来确实会涉及到非常多的因素 xff0c 但真正决定你视频曝光的关键就是视频文案 xff0c 从剧情的铺垫 冲突 反转 xff0c 这在一定程度上能够吸引不少的观众 又或者小说开篇要么叙述宏达的故事背景 xff0c
  • Windows如何登录linux?

    1 用SSH命令 xff0c windows连接Linux xff08 1 xff09 ssh l root 192 168 5 15 xff08 2 xff09 ssh root 64 192 168 5 10 首次连接yes 即可 2
  • 单链表及其Java代码实现

    众所周知 xff0c 数组和链表都有内存寻址的功能 而数组元素的内存地址是连续的 xff0c 在寻址的时候很容易就可以找到下一个节点的值 而链表中元素的地址不是连续的 xff0c 那我们应该怎么去寻址呢 xff1f 假设现在计算机中有三个节
  • 创建Java Web项目并实现前后端交互

    目录 一 xff1a 使用工具 二 xff1a 创建Java Web项目 三 xff1a 编写代码 一 xff1a 使用工具 Eclipse 版本如下 xff1a 注 xff1a 不同版本的eclipse创建的项目基础目录可能会有所不同 二
  • 不坠华年(大一篇)

    秒速5厘米的樱花 这一年 xff0c 我遇到了想共度一生的人 xff0c 但是 从来没谈过恋爱的我根本不知道如何去追女孩子 xff0c 算了 xff0c 只要她快乐就好 xff0c 喜欢也不一定会在一起吧 xff0c 我总是说愿意等 xff
  • 数据结构之平衡有序二叉树

    我们知道引入树是为了提高数据存储 xff0c 读取的效率 可是有的二叉树并不能提高效率 xff0c 例如下面的这个树 这是一种极端的情况 xff0c 实际上它已经和链表一样了 xff0c 现在对它进行查询 xff0c 时间复杂度已经成为了O
  • 数据结构之B+树

    B 43 树结构特点 1 非叶子节点仅具有索引作用 xff0c 也就是说 xff0c 非叶子节点只能存储Key 不能存储value xff1b 2 树的所有叶节点构成一个有序链表 xff0c 可以按照key排序的次序依次遍历全部数据 B 4
  • MyBatis之Maven配置

    一 什么是Maven Maven是一个项目管理工具 xff0c 它包含了一个对象模型 一组标准集合 xff0c 一个依赖管理系统 和用来运行定义在生命周期阶段中插件目标和逻辑 二 下载配置相关版本的Maven 解压之后做相关的配置 1 配置
  • 数据库三大范式

    第一范式 xff08 1NF xff09 xff1a 在设计数据库时 xff0c 第一范式是对数据库的基本要求 满足第一范式的关系数据库的每一个域均为原子性的 xff0c 即数据库表的每一列都是不可分割的原子项 xff0c 而不能是集合 数
  • 数据库设计规范

    字符集 表格创建规范 所有的表都必须有这几个字段 删除一般都是软删除 xff0c 01删除标志 id等数字类型的字段不能只使用bigint用bigint unsigned xff08 为什么 xff1a xff09 当数据库中该属性添加un
  • git的版本控制流程以及特性分支之间怎样切换

    git xff1a 版本控制工具 xff08 例 xff1a 淘宝每次升级版本号加1 xff0c git来控制版本 xff09 命令 git pull xff1a 用于从远程更新存储库的本地版本 git commit xff1a 主要用于将
  • Android _ ViewBinding 与 Kotlin 委托双剑合璧,从思维图到基础再到深入

    lt LinearLayout tools viewBindingIgnore 61 true gt 3 2 创建绑定类 有三个创建绑定类的 API xff1a fun bind view View T fun inflate inflat
  • Android语音播报、后台播报、语音识别,android程序开发

    lt xml version 61 34 1 0 34 encoding 61 34 gt Android学习笔记总结 43 最新移动架构视频 43 大厂安卓面试真题 43 项目实战源码讲义 gt gt docs qq com doc DS
  • Spring框架介绍和使用

    一 Spring框架介绍 1 Spring简介 Spring是2003年兴起的一个Java轻量级框架 xff0c 它是为解决企业级开发的复杂性而创建的一个框架 它是一个分层的JavaSE EE Full Stack xff08 一站式 xf
  • SpringMVC注解开发运行原理

    服务器初始化过程 xff1a 1 xff1a 服务器初始化 加载继承 AbstractDispatcherServletInitializer即springmvc定义的代替web xml的 类初始化web容器 然后重写三个方法 xff1a