乐趣区

关于java:springboot动吧项目

架构剖析


页面流程

业务剖析:客户端向服务端发送一个申请,发向了 Tomcat,如果 Tomcat 只有一个线程是不可能解决多个申请的,所以就须要一个多个线程的池资源,而后线程用 I / O 读取申请中的数据,而后服务器从 http 协定中拿到数据,而后把数据封装到 request 对象中,进行过滤,过滤之后交给 springmvc,之后就是 springmvc 的流程了
在 return “starter” 处加一个断点,刷新页面 debug 运行如下

而后走到 dispatcherServlet(mvc 中的 c),当客户端传了一个 url 当前,c 会基于 url 找到一个处理器,会找到 requestmapping,而 r 外面就相当于有一个 map,map 里有 key 和 value,当传来的 url 是 key,基于 k 找 v,而 v 就是前面的 collection 办法,做了一个映射,collection 严格来讲就是一个申请处理器,那那么多处理器怎么找到呢,两头得对应一个映射,而映射就是 r,(这个 r 能够通过点击 boot dashboard,再点我的项目 抉择下面的 show properties 再点 request mapping 的 path 对应的 source 去查看),找到之后 dispatcherServlet 就开始基于 url 的映射,去反射调用 controller,而后 9 在调用办法,办法返回给 dispatcherServlet 一个 view 的名字,dispatcherServlet 拿到名字当前,当办法的返回值是 view 的时候,要解析这个 view,这个办法谁调用就返回给谁,所以 dispatcherServlet 拿到了名字,dispatcherServlet 拿到名字之后会交给视图解析器解析这个名字,咱们默认应用的解析器是 thymeleafViewResolver,所以模板放到了 templates 上面,这样才能够解析,解析之后加上前缀和后缀,如果还有一部分 model 数据,还有把 model 的数据放到 view 下来
当输出 localhost/doIndexUI 这个地址的时候,是由 DNS 服务器解析的域名,拿到一个 ip 地址(是网络中计算机的惟一标识),基于 ip 找到网络中的主机,找到服务器,而后会通过端口号(是程序的惟一标识) 找到程序,找到了 Tomcat,一旦找到了 Tomcat 就会有了上树的过程

退出移动版