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。

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

相关推荐
xiaogai_gai7 分钟前
钉钉数据集成到金蝶云星空案例分享:传给钉钉后,回传金蝶字段
java·前端·钉钉
摇滚侠7 分钟前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 19-25
java·云原生·kubernetes
标致的钢铁侠13 分钟前
c# 温故而知新: 线程篇(一)
java·jvm·c#
宠友信息16 分钟前
资源权限与钱包流水在即时通讯源码后端架构中的设计
java·spring boot·redis·websocket·缓存
不知名的老吴18 分钟前
浅谈:编程语言中的那些「锁」事(二)
java·开发语言
程序员小八77720 分钟前
AOP 切面
java
地铁潜行者34 分钟前
从单体思维到微服务:服务拆分与组件选型实践
java·后端
花生了什么事o34 分钟前
线程池参数调优:corePoolSize 怎么设置
java·后端
想要成为糕糕手35 分钟前
🚀 从零玩转 Agent 开发:原理、架构与框架实战完全指南
后端
灵性(๑>ڡ<)☆36 分钟前
Java学习笔记 --面向对象进阶
java·笔记·学习