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。

提高代码的可重用性和可维护性:使得不同模块之间的依赖关系更加清晰,便于理解和修改。

相关推荐
爱装代码的小瓶子2 分钟前
【c++知识铺子】封装map和set(详细版)
android·java·c++
2201_757830874 分钟前
tlias的部门的增删改查操作
java·开发语言
锥锋骚年12 分钟前
golang 发送内网邮件和外网邮件
开发语言·后端·golang
雨雨雨雨雨别下啦23 分钟前
Spring AOP概念
java·后端·spring
on the way 12324 分钟前
day04-Spring之Bean的生命周期
java·后端·spring
代码笔耕26 分钟前
面向对象开发实践之消息中心设计(二)
java·后端·架构
云水木石34 分钟前
Rust 语言开发的 Linux 桌面来了
linux·运维·开发语言·后端·rust
法欧特斯卡雷特40 分钟前
Kotlin 2.3.0 现已发布!又有什么好东西?
后端·架构·开源
要开心吖ZSH41 分钟前
应用集成平台-系统之间的桥梁-思路分享
java·kafka·交互
TsengOnce44 分钟前
阿里云ECS多版本JDK切换
java·python·阿里云