73.是否可以把我们所需的Bean都放入Springmvc子容器里面来管理(springmvc的spring-servlet.xml中配置全局扫描)?

一、是否可以把我们所需的Bean都放入Spring­mvc子容器里面来管理(springmvc的spring-servlet.xml中配置全局扫描)?

可以 , 因为父容器的体现无非是为了获取子容器不包含的bean, 如果全部包含在子容器完全用不到父容器了, 所以是可以全部放在springmvc子容器来管理的。
虽然可以这么做不过一般应该是不推荐这么去做的,一般人也不会这么干的。如果你的项目里有用到事物、或者aop记得也需要把
这部分配置需要放到Spring-mvc子容器的配置文件来,不然一部分内容在子容器和一部分内容在父容器,可能就会导致
你的事物或者AOP不生效。 所以如果aop或事物如果不生效也有可能是通过父容器(spring)去增强子容器(Springmvc),也就无法增强。

二、spring父子容器原理

Spring框架支持父子容器的概念,这意味着它可以管理和维护多个层次的依赖关系。当一个Bean被定义为在一个特定的层次结构中时,它可以在该层次结构的任何上下文中访问和使用。这可以通过@Scope注解或者context:component\-scan标签来实现。

具体来说,如果在某个配置文件中使用<context:component-scan base-package="com.example.module" />,则扫描将仅限于com.example.module包及其子包。同样地,@Scope注解可以指定bean的生命周期范围,如sessionrequest

当需要在不同的组件之间共享数据或服务时,父子容器的设计非常有用。例如,在一个大型的多模块项目中,每个模块可能都需要自己的角色管理服务(RoleService)。在这种情况下,可以将这些服务定义为一个单独的模块,并将其作为子容器注入到其他模块中。这样,所有依赖于角色的模块都可以直接从子容器中获取角色服务实例,而不需要知道它们是如何实现的或在哪里创建的。

总结一下,Spring框架的父子容器设计允许开发者:

明确指定依赖关系的层次:通过@Scope注解或context:component\-scan标签实现。
避免重复加载和依赖冲突:确保不会因为依赖循环而在同一个层次结构内多次加载相同的bean。
提高代码的可重用性和可维护性:使得不同模块之间的依赖关系更加清晰,便于理解和修改。

相关推荐

  1. SpringBoot-将Bean容器五种方式

    2024-02-20 05:56:01       30 阅读
  2. 怎么“访问”Spring容器管理bean

    2024-02-20 05:56:01       18 阅读
  3. springMVC注解

    2024-02-20 05:56:01       11 阅读
  4. 74.如何实现无XML零配置SpringMVC

    2024-02-20 05:56:01       25 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-20 05:56:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-20 05:56:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-20 05:56:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-20 05:56:01       20 阅读

热门阅读

  1. 【牛客】寒假训练营3 J-智乃的相亲活动 题解

    2024-02-20 05:56:01       33 阅读
  2. 利用ChatGPT提升工作效率

    2024-02-20 05:56:01       33 阅读
  3. 搜索+哈希/平衡树,LeetCode 987. 二叉树的垂序遍历

    2024-02-20 05:56:01       33 阅读
  4. 大数据经责审计

    2024-02-20 05:56:01       34 阅读
  5. the file size exceeds the configured limit Android studio

    2024-02-20 05:56:01       24 阅读
  6. c++ %运算符

    2024-02-20 05:56:01       27 阅读