ok~_~ok 2018-09-11 00:15 采纳率: 80%
浏览 1537
已采纳

为什么Spring父容器对SpringMVC子容器中的bean是不可见的..?

为什么Spring父容器对SpringMVC子容器中的bean是不可见的,而子容器对父容器的中bean却是可见的?

文章截图来自:Spring-SpringMVC父子容器&AOP使用总结

图片说明

 如果是把Spring父容器与Spring MVC子容器比喻成平常的父类和子类,请说明为什么能比喻成父类和子类?
  • 写回答

7条回答 默认 最新

  • smile_zls 2018-09-11 01:20
    关注

    Spring框架包含很多Spring AOP、Spring ORM、Spring DAO、Spring Web、Spring Context、Spring Web MVC、Spring Core,每个都是Spring的一部分,相当于一个父类有多个子类,比喻成继承或者实现都可以。你可以这样想,既然这些容器都属于Spring框架,它肯定会继承或者实现Spring框架,不然弄这些框架做什么用。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • smile_zls 2018-09-11 00:19
    关注

    就好比继承,子类继承父类,子类知道父类的属性、方法,可父类却不知道子类的方法是怎么玩的。。。

    评论
  • 木炎2019 2018-09-11 01:17
    关注

    因为springmvc是在spring的基础上加入了mvc的模式,所以可以认为是springmvc是spring的子类,springmvc继承了spring的特性又在基础上加入mvc,你就可以理解为一个是父类,一个是子类的关系

    评论
  • _zming 2018-09-11 01:38
    关注

    我觉得吧,spring就是这么设计的,知道就行了,你没必要非得找个东西跟它类比,非要知道原由,简单打开api查下便知:
    如果你查下api以XmlBeanFactory为例,他继承了HierarchicalBeanFactory接口,这个接口就时用来控制层次关系的,有个核心的方法:BeanFactory getParentBeanFactory();,通过这个方法,子容器就可以获取到父容器的bean,但这个接口没有获取子容器的方法。所以你应该明白,原因。

    评论
  • Sanjay_yww 2018-09-11 02:07
    关注

    你问的这个问题实际上是继承的原理,子类会拥有父类的所有属性与方法,并且加上自己本身的属性与方法,但是父类却没有子类的属性与方法,java代码都是这样的,如果非要搞清楚原因的话,那就从java的设计原理上入手吧

    评论
  • underthesun2008 2018-09-11 02:54
    关注

    感觉你一直纠结于“为什么能把Spring容器与Spring MVC容器比喻成父类和子类的关系”,父类和子类之间的继承关系,初衷应该是代码(模块)重用,子类天然继承了父类的属性和功能,且加入自身特有的属性和功能。
    SpringMVC不就是在Spring的基础上加入了MVC的属性和功能吗,这个是不是可以类比的呢?

    评论
  • huwao 2018-09-11 09:01
    关注

    spring是市场上大多框架的核心粘合剂,更是许多框架的启蒙框架,是spring类框架下的父级框架,因此楼上的大神才这样子比喻,不过是为了你好理解些,真实的原理你必须自己看看源代码,
    。推荐更多你去看看源代码,也多去了解一下spring的前世今生。

    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 已采纳回答 9月12日

悬赏问题

  • ¥60 关于海信电视聚好看安装应用的问题
  • ¥15 vue引入sdk后的回调问题
  • ¥15 求一个智能家居控制的代码
  • ¥15 ad软件 pcb布线pcb规则约束编辑器where the object matpcb布线pcb规则约束编辑器where the object matchs怎么没有+15v只有no net
  • ¥15 虚拟机vmnet8 nat模式可以ping通主机,主机也能ping通虚拟机,但是vmnet8一直未识别怎么解决,其次诊断结果就是默认网关不可用
  • ¥20 求各位能用我能理解的话回答超级简单的一些问题
  • ¥15 yolov5双目识别输出坐标代码报错
  • ¥15 这个代码有什么语法错误
  • ¥15 给予STM32按键中断与串口通信
  • ¥15 使用QT实现can通信