java – 之间的关联:SpringIocContainer | ApplicationContext |的WebApplicationContext

背景

阅读后1 2 3 4 5 6链接我得出以下结论 –

作为Spring mvc设计在一个标准的servlet,并且促进servlet上下文和应用程序上下文相同的功能.在春天有两种类型的上下文ApplicationContext和WebApplicationContext-

ApplicationContext由ContextLoaderListener初始化,每个应用程序单个instanse.
每个dispatcherServlet加载的WebApplicationContext.

我们可以在上面看到这样的ApplicationContext扩展的WebApplicationContext,所以有什么东西与ApplicationContext相关的最后这是WebApplicationContext的一部分.

疑惑

> ApplicationContextAware提供哪个上下文对象.

public class SomeThing implements ApplicationContextAware{
@Override
public void setApplicationContext(ApplicationContext ctx) throws BeanException{
//this context object is `ApplicationContext` or `WebApplicationContext`?
 }
}

>上下文和容器似乎是我们大多数人的同义词,我想
给出一个例子.说我们有两个调度器servlet一个
休息等为mvc.

一个调度员 –

public class Restinitializer extends AbstractAnnotationConfigdispatcherServletinitializer {
    @Override
    protected String[] getServletMappings() {
        return new String[] { "/rest/*" };
    }
}

第二调度员 –

public class WebAppInitializer extends AbstractAnnotationConfigdispatcherServletinitializer {
        @Override
        protected String[] getServletMappings() {
            return new String[] { "/mvc/*" };
        }
    }

比这里有两个WebApplicationContext的实例,那些
公共部分由ContextLoaderListner加载为定义
rootContext.

我不确定,但在一个SpringApplication中不能有2个IocContainer.
> beanfactory即SpringIocContainer是,其中所有的bean对象
生活,我们与WebApplicationContext相关联的对象是什么
spring容器的一部分,这个容器是如何初始化的
WebApplicationContext?我想知道他们是如何做到的
相互关联?

每当我们做ctx.getBean() – 这会从spring返回对象
容器,上下文和容器之间的这种通信如何
发生?

一个类似的answer,否认这两者都是一样的,它说

Spring comes with several container implementations,Both load bean deFinitions,wire beans together,and dispense beans upon request,but an ApplicationContext offers much more.

所以我的观点就是为什么两个加载bean的定义,一起是一起的,这是一种返工?

即使网络应用程序是弹簧驱动的,还有一件事情,在Http通信中必须有一个标准servlet提供和使用的上下文

Spring遵循这一点,或者Spring以其他方式处理这个问题.而在spring context中,这意味着只有一个IOC容器,其中一部分由dispacherServlet加载,一部分由ContextLoaderListner加载,并且可以方便更多的诸如I18N,访问静态资源等等..

解决方法

为你的怀疑1

在spring应用程序中有一个单独的上下文实例,它是每个dispatcherServlet的WebAplicationCntext.它可以被一个超级接口ApplicationContext-

public class SomeThing implements ApplicationContextAware{
@Override
public void setApplicationContext(ApplicationContext ctx) throws BeanException{
//this context object is `WebApplicationContext` which is refer by `ApplicationContext`.
 }
}

在春天,上下文意味着只有一个IOC容器,一些部分由ContextLoaderListner加载,并且可以促进更多的诸如I18N,访问静态资源等

您以上的理解几乎是正确的.在Spring中所有的WebApplicationContext对象共享一些常见的引用,即RootContext.

这个答案不包括question2,doubt3的答案,以及为什么所有的上下文都执行相同的任务.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


应用场景 C端用户提交工单、工单创建完成之后、会发布一条工单创建完成的消息事件(异步消息)、MQ消费者收到消息之后、会通知各处理器处理该消息、各处理器处理完后都会发布一条将该工单写入搜索引擎的消息、最终该工单出现在搜索引擎、被工单处理人检索和处理。 事故异常体现 1、异常体现 从工单的流转记录发现、
线程类,设置有一个公共资源 package cn.org.chris.concurrent; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * @Descrip
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量
Java 9中JShell中的不同启动脚本是什么?
使用Java的位填充错误检测技术
java中string是什么
如何使用Java中的JSON-lib API将Map转换为JSON对象?
Java菜单驱动程序以检查数字类型
使用Junit的Maven项目 - 检查银行账号
JAVA编程基础
在Java中使用throw、catch和instanceof来处理异常
在Java中,将数组分割为基于给定查询的子数组后,找到子数组的最大子数组和
如何在Java中从给定的字符串中删除HTML标签?
在PHP中,IntlChar getBlockCode()函数的翻译如下:
如何在Android中实现按下返回键再次退出的功能?
如何使用Java中的流式API解析JSON字符串?
Java中的模式类