首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringMVC框架底层实现原理

先来张图说明一下咱们的一般的网络请求都走的过程:

1、客户端访问域名

经过DNS解析后,域名被映射到服务器的某一端口(解析的时候就已经约定好的),那么为什么不用一个端口去跑多个网站呢,那么就涉及到了我们的域名,域名一般都只会运行一个网站,而且对于一个端口对应一个网站也是比较好控制的,因为不想让用户访问某一网站时只需要将对应的端口关闭即可。

2、服务器端接收到http请求

tomcat通过调用操作系统的一些方法,定时的(轮询方式)向端口请求信息,这里就用到了socket技术,当有信息传来之后Tomcat进行解析。

3、Tomcat解析

tomcat根据xml里边的配置信息,解析到相应的端口,访问具体项目。

4、spring项目执行

Spring扫描技术:

web项目执行的第一个操作就是取找web.xml文件,因为这是所有web项目启动的必备配置,在xml里配置Spring的相关配置,这样每次项目启动的时候就会调用相应的jar包并且去读取相应的配置文件,而Spring最重要的技术就是asm扫描技术,扫描技术用来扫描我们的类。

Spring注解:

注解用来标记需要扫描的类,即用来告诉Spring扫描器需要扫描的类,扫描完成后将扫描出来的类放到内存中的特定Spring容器中,然后对于注解里边的值(例如@RequestMapping("/abc")),会将他的值以key和对应的类的存储路径为value的形式存入到内存的map表中,方便程序运行时通过路径定位类。

反射加代理:

前边说的只是spring能定位到类的路径了,但是关于如何实例化类和访问相应的方法,我们就得用到反射来获取类,用代理去实现调用相应的方法。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190112G0IKEG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券