Spring 上下文

本文介绍了Spring的WebApplicationContext,包括其作为父上下文和子上下文的角色,以及DispatcherServlet如何创建子上下文。同时,讨论了使用ClassPathXmlApplicationContext可能导致的重复初始化问题,以及ApplicationContextAware接口如何让类能够访问Spring上下文中的bean。
摘要由CSDN通过智能技术生成

一、WebApplicationContext(父子上下文)

      Spring会创建一个WebApplicationContext上下文,称为父上下文(父容器),保存在ServletContext中,每个DispatcherServlet有一个自己的上下文对象(WebApplicationContext)称为子上下文(子容器)。

  WebApplicationContext webApplicationContext =             
               ContextLoader.getCurrentWebApplicationContext();

   ServletContext context = webApplicationContext.getServletContext();

        webApplicationContext.getBean("xx")

二、使用ClassPathXmlApplicationContext()

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

       使用new ClassPathXmlApplicationContext() 它会重新装载applicationContext.xml并实例化上下文bean,如果有些线程配置类也是在这个配置文件中,那么会造成做相同工作的的线程会被启两次。一次是web容器初始化时启动,另一次是上述代码显示的实例化了一次。当于重新初始化一遍!!!!这样就产生了冗余。

三、ApplicationContextAware接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值