springIoC容器在web项目中的创建流程

本文解析了Spring IoC容器在Web项目中的创建流程,包括不同ApplicationContext实现类的应用场景,如ClassPathXmlApplicationContext和AnnotationConfigApplicationContext。同时,深入探讨了web.xml中ContextLoaderListener的配置与作用,以及其在web容器启动时如何触发Spring容器的初始化。

springIoC容器在web项目中的创建流程

创建方式

ApplicationContext接口常用实现类
***ClassPathXmlApplicationContext:
它是从类的根路径下加载配置文件 推荐使用这种
***FileSystemXmlApplicationContext:
它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置。
***AnnotationConfigApplicationContext:
当我们使用注解配置容器对象时,需要使用此类来创建 spring 容器。它用来读取注解

Web应用中创建IoC容器

web.xml中配置ContextLoaderListener接口,并配置ContextConfigLocation参数
***web容器启动之后加载web.xml,此时加载ContextLoaderListener监听器(实现了ServletContextListener接口,该接口的描述请见下面《三类八种监听器》)
***ContextLoaderListener监听器会在web容器启动的时候,触发contextInitialized()方法。
***contextInitialized()方法会调用initWebApplicationContext()方法,该方法负责创建Spring容器(DefaultListableBeanFactory)。

【Web三类八种监听器】:
***监听域对象的生命周期:
*ServletContextListener:
*创建:服务器启动
*销毁:服务器正常关闭
*spring ContextLoaderListener(服务器启动时负责加载Spring配置文件)
*HttpSessionListener
*创建:第一次访问request.getHttpSession();
*销毁:调用invalidate();非法关闭;过期
*ServletRequestListener
*创建:每一次访问
*销毁:响应结束
***监听域对象的属性:(添加、删除、替换)
* ServletContextAttributeListener
* HttpSessionAttributeListener
* ServletRequestAttributeListener
***监听HttpSession中JavaBean的改变:
* HttpSessionBindingListener(HttpSession和JavaBean对象的绑定和解绑)
* HttpSessionActivationListener(HttpSession的序列化,活化、钝化)

源码分析

  1. web服务器(tomcat)启动会加载web.xml(启动ContextLoaderListener监听器):在这里插入图片描述
  2. 创建Web环境中的Spring容器在这里插入图片描述
  3. ContextLoader类中创建Spring容器并初始化容器中的Bean实例。 在这里插入图片描述
  4. configureAndRefreshWebApplicationContext方法中调用最终初始化Bean的refresh方法
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值