面试必背之Spring和SpringMVC父子容器问题(父子容器污染)

栏目:游戏资讯  时间:2023-08-11
手机版

  1、容器

  Spring项目管理框架 核心作用:组件的创建,使用,销毁对象

  2、父子容器

  Spring容器

  SpringMVC基于Spring开发的控制器框架 本质:也是容器也能创建,使用,销毁对象

  3、两个容器:Spring SpringMVC

  SSM:Struts2+Spring+Mybatis只有一个容器

  现有的SSM整合Spring+SpringMVC+Mybatis 有两个容器

  4、父子容器 就是Spring和SpringMVC的关系

  Spring是父容器

  SpringMVC是子容器

  5、父子容器的特点

  父容器中的组件 可以共用,子容器的组件只有自己能用,同时子容器内部组件只有容器可用,而且优先使用自己的组件

  6、父子容器污染

  如果父子容器的组件扫码都扫码位置一样就会出现父子容器污染,都会同时创建Controller,Service对象

  问题:

  1、父子容器会创建相同的组件,浪费存储资源

  2、子容器使用没有添加事务控制的Service实现类 从而丢失数据,额外功能和事务控制

  7、解决方案

  解决方法的核心:父容器只扫描Dao,Servie,子容器只扫描Controller相关

  方案一:父容器扫码全部,子容器只扫描Controller相关组件

  方案二、父子容器都扫描根【企业,开发,面试必背】

  通过修改扫描策略来指定各个容器的扫描范围

  父容器

  子容器(use-default-filters:关闭默认扫描策略)

上一篇:端午节的作文
下一篇:萝莉与大叔的那些不可描述