Spring框架底层实现原理详解

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

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能定位到类的路径了,但是关于如何实例化类和访问相应的方法,我们就得用到反射来获取类,用代理去实现调用相应的方法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值