1)关系说明

spring 与 springmvc 父子关系:spring (父容器),springmvc (子容器)
springmvc(子)--- 可调用 --> spring(父) 中的 bean,属性值等
但 spring(父)-- 不可调用 --> springmvc(子) 中的 bean,属性值等

2)配置原则

spring-context.xml
<!-- 启动组件扫描,排除@Controller的组件,因为控制器组件由SpringMVC配置文件扫描 -->
<context:component-scan base-package="com.***.***">
   <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

springmvc.xml
<!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器,要有use-default-filters="false" -->
<context:component-scan base-package="com.***.***.controller" >
   <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

success:
url --> servlet --> springmvc(访问 controller,所以 controller 必须放到springmvc容器)
springmvc --> spring(controller 调用 service,dao)
error:
把 controller 放到 spring 容器,不放到 springmvc 出现的问题:
url --> servlet --> springmvc(spring 会将扫描的对象都会存放到 spring 的容器,而不会放到 springmvc 子容器中,当访问项目的时候,springmvc 通过处理器映射器找不到和其对应的 Controller,报 404 错误! )
spring 容器不扫描,全部放到 springmvc 中扫描出现的问题: 
在里面可以同时扫描 controller层、service层、dao层 的注解,但是,子容器controller 进行扫描装配时装配了 @Service注解 的实例,而该实例理应由父容器进行初始化以保证事务的增强处理(因为事务管理器是配置在 spring 容器中的),所以此时得到的将是原样的 Service(没有经过事务加强处理,没有事务处理能力,无法访问到事务对象,导致事务失效)
@Value("${name}") 取不到 properties 文件中定义的变量值
<!-- 配置文件引入 -->
<context:property-placeholder location="classpath:application.properties"
                       ignore-resource-not-found="true" ignore-unresolvable="true" />

service,dao 中不能 @Value 配置在 springmvc.xml 的properties (父容器 -- 不能访问 --> 子容器 的东西)

@Value取不到值引出的spring的2种配置文件applicationContext.xml和xxx-servlet.xml

转载于:https://www.cnblogs.com/molashaonian/p/8763345.html

Spring 与 SpringMVC 容器父子关系引出的相应问题相关推荐

  1. Spring和SpringMVC的父子容器关系

    容器 在Spring整体框架的核心概念中,容器是核心思想 就是用来管理Bean的整个生命周期的 在一个项目中,容器不一定只有一个 Spring中可以包括多个容器,而且,容器有上下层关系 一个项目中引入 ...

  2. 简述Spring、SpringMVC、SpringBoot关系?

    1.Spring Spring是一个轻量级的Java开发框架,核心是SpringIOC(控制反转)和SpringAOP(面向切面),针对开发的web层.业务层.持久层等都提供了多种配置解决方案. 主要 ...

  3. Spring和SpringMVC父子容器关系初窥

    一.背景 最近由于项目的包扫描出现了问题,在解决问题的过程中,偶然发现了Spring和SpringMVC是有父子容器关系的,而且正是因为这个才往往会出现包扫描的问题,我们在此来分析和理解Spring和 ...

  4. 探究Spring和SpringMVC父子容器关系

    兄弟萌,相信有很多人想不到 Spring 和 SpringMVC 是父子容器吧,^ - ^,下面我们来一探究竟. 一般做 SSM 框架项目时,扫描 @Controller 注解类的对象是在 Sprin ...

  5. Spring容器 SpringMVC容器 web容器的关系

    说到spring和springmvc,其实有很多工作好多年的人也分不清他们有什么区别,如果你问他项目里用的什么MVC技术,他会说我们用的spring和mybatis,或者spring和hibernat ...

  6. spring容器和SpringMVC容器的区别

    说起spring容器和SpringMVC容器,很多刚接触spring框架的同志都有点懵,甚至是一头雾水,分不清楚两者的关系和区别,包括本人也是,因此还在网上找个不少资料.这俩容器呢虽然有必然的联系,但 ...

  7. 面试高频题:Spring和SpringMvc父子容器你能说清楚吗

    引言 以前写了几篇关于SpringBoot的文章<面试高频题:springBoot自动装配的原理你能说出来吗>.<保姆级教程,手把手教你实现一个SpringBoot的starter& ...

  8. Spring和springMVC父子容器的原理

    首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,其为后面的spring IoC容器提供宿主环境: 其次,在web.xm ...

  9. Spring容器父子类继承关系交给spring容器管理采用@autowired自动装配分析

    第一个青春是上帝给的 第二个的青春是靠自己努力的. 在开发项目过程中开发者们可能会遇到这样的问题 @autowired自动装配模式的工作模式是:在springIOC定位所有的Bean后,这个字段需要按 ...

  10. 热门框架系列 (二) -- SpringMvc的父子容器,SpringBoot是否有父子容器?

    @TOC# 热门框架系列 记录在程序走的每一步___auth:huf 从新的篇章开始;篇章阅读需要先关注; 因为笔者想参与技术文章的评选.;需要一定的粉丝量; 粉丝量达到一定数量.所有文章阅读限制将会 ...

最新文章

  1. jQuery的选择器中的通配符使用介绍
  2. 学python需要什么基础知识-Python学习(一)基础知识
  3. git切换到指定tag
  4. 1132:石头剪子布
  5. java---随机小结
  6. 割点和桥算法——摘自《算法艺术与信息学竞赛》
  7. android系统源码的环境下用make来编译,Android源码编译系统入门
  8. MicroNets:更小更快更好的MicroNet,三大CV任务都秒杀MobileNetV3
  9. C语言丨线性查找(顺序查找)
  10. 网易交互设计师微专业C5 交互设计测试与评估
  11. 华为鸿蒙手机系统什么时候开始更新_华为鸿蒙系统2.0什么时候可以升级
  12. springboot 连接并操作redis 完全可用的
  13. python xlrd模块 xlwd模块 python操作Excel python读取Excel
  14. (3).Mybatis动态sql的使用
  15. matlab正弦余弦与圆的关系
  16. 异常:git did not exit cleanly (exit code 128)
  17. 粗糙漫画网站(真的粗糙)之首页设计
  18. LWP(Library for WWW in Perl)的基本使用
  19. Linux系统下nohup日志文件按日期分割展示
  20. GPDB中gp_vmem_protect_limit参数的意义

热门文章

  1. 在win7的操作系统下安装Oracle11R2
  2. 合并果子(贪心+优先队列)
  3. SpringMVC实现AJax以及RestFull风格
  4. 函数, lambda表达式
  5. zencart 1.5.1 英文原版 安装前和安装后目录文件的变换
  6. android 弹出软键盘将底部视图顶起问题
  7. 洛谷 2051 [AHOI2009] 中国象棋
  8. 2T以上的盘怎么分区, 利用parted创建 linuxTB硬盘GPT分区
  9. SQL Server 中位数、标准差、平均数
  10. 使用docker实现半自动化代码自动部署与回滚