美文网首页
《深入分析Java Web》

《深入分析Java Web》

作者: Grey____ | 来源:发表于2018-11-20 20:19 被阅读0次

    第一章 深入Web请求过程

    用户在浏览器输入一个网址,整个过程是URL通过DNS域名解析成IP地址,然后向这个IP地址的服务器发起GET请求。(经过服务器负载)服务器返回数据给浏览器,当浏览器解析到一些静态资源时,又会发起另外的HTTP请求,再次经过DNS解析,(如果存在)返回给浏览器最近的CDN节点。

    发起一个请求:解析成IP,根据IP和默认端口80与远程服务器建立socket连接,然后根据这个URL组装成一个GET类型的HTTP请求(outputStream.write())发送到目标服务器,目标服务器接收(inputStream.read),然后再返回数据,连接断开。

    DNS域名解析过程:1.浏览器缓存 2.本机hosts文件 3.本地区域名服务器(LDNS)4.LNDS访问ROOT Server 5.LNDS拿到ROOT Server返回的主域名服务器(gTLD),去请求gTLD 6.LDNS拿到gTLD返回的Name Server去请求Name Server 7.Name Server查询域名和IP的映射关系表,返回目标IP给LDNS 8.LDNS返回给用户

    第十三章 Spring框架的设计理念与设计模式分析

    Spring的三大核心组件:Context、Core、Bean

    我们为什么用Spring?因为Spring解决了一个非常关键的问题,它可以让你把对象之间的依赖关系转而用配置文件来管理,也就是它的依赖注入机制。而这个注入关系在一个叫IOC的容器中管理。在这个IOC容器中,就是被Bean包裹的对象们。Spring正是通过把对象包装在Bean中从而达到管理这些对象以及一系列额外操作的目的

    核心组件如何协同工作?Bean包装Object,而Object必然有数据,Context为这些数据提供生存环境(提供运行时环境,用以保存各对象状态),并且要发现每个Bean之间的关系,并维护好这些Bean的关系。所以Context就是一个Bean关系的集合,这个关系集合又叫IOC容器。而Core组件就是一系列的工具,帮你去发现、建立和维护Bean之间的关系。Core更贴切的说应该是个Util工具类。

    • Bean组件
      Bean组件在Spring的org.springframework.beans包下,在这个包下的所有类主要解决3件事,Bean的定义,创建,解析。
      Bean的创建:它的顶级接口是BeanFactory,典型的工厂模式
      Bean的定义:主要由BeanDefinition描述
      Bean的解析:Bean的解析非常复杂,功能被分的很细,Bean的解析主要就是对Spring配置文件的解析。

    • Context组件
      ApplicationContext是Context的顶级父类,它除了能标识一个应用环境的基本信息外,还继承了5个接口,用于扩展Context的功能。Application继承了BeanFactory,说明了Spirng容器中运行的主体对象是Bean,另外ApplicationContext继承了ResourceLoader接口,使得ApplicationContext可以访问任何外部资源。
      ApplicationContext的子类主要包含两个方面:
      · CpnfigurableApplicationContext:表示该Context是可修改的,其中最经常使用的是可更新的Context,即AbstractRefreshableApplicationContext类
      · WebApplicationContext:顾名思义就是为Web准备的Context
      总体来说ApplicationContext必须要完成以下几件事
      · 标识一个应用环境
      · 利用BeanFactory创建Bean对象
      ` 保存对象关系表
      · 能够捕获各种事件
      Context作为Spring的IOC容器,基本上整合了Spring大部分功能,或者说是大部分功能的基础

    • Core组件
      Core包含了很多关键类,其中很重要的一个就是定义了资源的访问方式(提供和加载资源标准,以接口定义的方式)。

    相关文章

      网友评论

          本文标题:《深入分析Java Web》

          本文链接:https://www.haomeiwen.com/subject/gqxfqqtx.html