spring-mvc框架反射和动态代理处理请求

12 篇文章 0 订阅

                            spring-mvc框架反射和动态代理处理请求

我们今天来梳理一下整个请求网站的整个流程。

首先我们搭建好网站之后放在服务器上。然后配置好对应的服务器请求需要的各种配置。tomcat,mysql等。

然后用户通过我们的域名访问访问我们的网站,dns代理服务器把请求信息解析,把请求打在我们的tomcat服务器上。

然后我们的服务器不断去对应开启的端口询问是否有请求,得到请求之后我们的服务器开始处理请求,然后把请求结

果返回给客户端。

 

注意:我们各个电脑之间的交流是由端口进行交互的。每个进程都会占有对应的端口,但是本身java并不会占用端口,而

是java编译之后在jvm执行class文件的时候通过操作系统来占用端口。为什么我们其他进程都有各自的接口呢?其实每个

进程占有接口的时候都有自己的约定,怎么解析对应的请求等。如果多个进程都用一个接口,会不知道怎样解析。所以操

作系统只会允许一个端口只会被一个进程占用。

那么具体server是怎么处理请求的呢?这是我们今天讨论的主要问题:

首先我们启动服务器,在启动过程中加载web.xml文件。来看看xml配置文件。

然后看看spring-mvc里面的配置:

上面对应的标签的功能已经标注。其中的context-param属于上下文参数,整个web项目都可以引用他。而其

中的name和value会转化成对应的key和value。然后会加载spring-mvc.xml配置文件。在上面的图片可以看到

context:component-scan标签中指定我们要扫描的包。然后在执行的时候会对我们自己的项目进行检索。当在

扫描时遇见@controller就会加载对应的java类,并通过单例模式生成一个对象。在加载类的过程中遇见

@RequestMapping标记对应的方法存放在map里。其中的key是指路径,value对应类路径和该类的方法签名。

注:方法签名是指能够唯一表示该方法(包括方法名和方法参数)

存放在map中的key值存储的是访问controller的路径(通过spring-mvc映射过来的路径。value后面等于的路径)。

value是对应要访问的方法包括该方法的所在类的具体位置。spring-mvc是通过反射加代理的方式处理请求。

反射:当有请求过来的时候会去map里查找是否有对应的方法,当路径匹配上的时候就会找到对应的类的对应的方法。

代理:都可以用这个类的单例对象调用对应的方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值