从零开始学习Spring(一)

从零开始学习Spring。让大家对spring的每一个jar包都熟悉。

今天搭建的工程无法跑起来。只是剖析一部分。我们先从web.xml的配置入手。

  • 新搭建的工程,先配置listener,


    image.png
  • pom.xml文件 只添加了两个:spring-web, servlet-api


    image.png
  • 最终得到依赖的jar列表:


    image.png
  • 看下面的依赖关系


    image.png

spring-aop。

    这个是面向切面编程的东西。虽然重要,但是在基础开发中不是一定要用到的。先去掉。

servlet-api

    这个是在pom引入的,用来查看源码,tomcat会提供jar,主要相关的是ServletContext,它是一个域对象,官方叫servlet上下文。spring相关的容器都会存放在这里。(大家还记得不用spring的时候搭建的web工程吗,doGet(...) DoPost(...) 方法,上面就有很多servletContext的取值存值操作)

spring-web。

     在web.xml中配置了一个监听器,他的作用是用来接收web application 关于 servlet context改变的通知(实现ServletContextListener接口)。而spring正是利用这个接收通知的特性,实现工程启动的时候,就初始化spring容器。

1.看下图监听器有一个初始化方法,createContextLoader方法在3.2.9的实现中是返回null的,所以contextLoader这个对象就是他自身----this。 主要看initWebApplicationContext方法。

image.png
  1. 创建WebApplicationContext


    image.png

在determineContextClass这个方法中,来确定web.xml是否有配置context-class,没有配置则使用默认的XmlWebApplicationContext,这个默认的配置文件定义在spring-web中。

image.png

所以这里最主要的就是初始化xmlWebApplicationContext这个全局的对象。
他就是context currentContext,由他可以获得servletContext,应用名称,id,发布名称,session。等等

你可能感兴趣的:(从零开始学习Spring(一))