spring mvc中applicationContext.xml与spring-mvc.xml的关系

前言

本文参考了:

史上最全最强SpringMVC详细示例实战教程

以及:
DispatcherServlet 和 ContextLoaderListener 的关系,到底用哪个?

【Spring】浅谈ContextLoaderListener及其上下文与DispatcherServlet的区别

值得注意的是,【【Spring】浅谈ContextLoaderListener及其上下文与DispatcherServlet的区别】中阐述了contextLoaderListener和dispatcherServlet的关系,
在这里插入图片描述

在这里插入图片描述

contextLoaderListener创建的上下文context默认配置就是applicationContext.xml,而DispatchServlet创建的context默认配置是spring-servlet.xml,而contextLoaderListener先创建上下文–这个上下文不如叫app上下文,后者DipatcherServlet将前者的上下文作为父亲上下文进行继承然后再创建自己的上下文–不如成为mvc上下文,当一个bean在mvc上下文中无法获取就会溯源到父上下文–app上下文获取。
因为同时有父子上下文,所以假如两个配置中都配置了同样的bean或者contextLoaderListener和DispatcherServlet中都使用同一个配置,那么就会产生初始化两次的囧况,

下面这样才是对的:
在这里插入图片描述

在这里插入图片描述

两者使用的配置文件是不一样的,不能用同一个,也不能在两个配置文件都注册一个bean。

这篇文章讲解了两个配置的关系:

springmvc.xml和applicationContext.xml配置的特点

因为contextLoaderListener继承自servletContextListener,
在这里插入图片描述

所以它合适初始化service,dao,数据库连接池,mybatis,定时任务等等bean对象----注意这些都与request对象无关,无需调用web开发中的request或者response对象的。

而DispatchServlet适合初始化controller,views视图层等对象—注意到它本身就是servlet,能够随意调用request等对象,当然,异步action也在这里设定,后文再说这个异步请求。

而文章【DispatcherServlet 和 ContextLoaderListener 的关系,到底用哪个?】出现的原因就是恐怕两个上下文用同一个配置文件或者两个配置文件有重合的地方,所以才会出现初始化两次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值