gpt4 book ai didi

java - 多次导入相同的 spring 应用程序上下文文件

转载 作者:行者123 更新时间:2023-11-29 07:03:44 25 4
gpt4 key购买 nike

我有一个跨多个模块的大型 Web 项目。每个模块都有自己的 spring 应用程序上下文 xml 文件。在父项目的 applicationContext.xml 文件中,我导入了所有子模块的 applicationContext.xml 文件。假设我有以下子 applicationContext.xml 文件

    -aContext.xml
-bContext.xml
-cContext.xml

在父项目的 applicationContext.xml 文件中,所有这些都被导入。但是我在aContext.xml bContext.xml 和cContext.xml 中看到的一些地方又被导入了?

层次结构是这样的-

     -applicationContext.xml(parent)
-aContext.xml
-bContext.xml
-cContext.xml
-bContext.xml
-cContext.xml

我可以理解这样做没有任何坏处,因为我的 Web 应用程序已启动并完美运行。我唯一想了解的是,这样做是否存在任何性能故障?如果我删除嵌套的 xml 文件并只导入一次,我会看到任何性能改进吗?

最佳答案

通常,当一个 spring web 应用程序上下文被加载时,它会跟踪 bean 定义,如果稍后在上下文中找到相同的 bean 定义,则会覆盖。从那里你会得到“覆盖 bean 定义”消息,如解释的那样 here .所以我认为唯一的影响是不必要地创建大量 bean 定义。然而,在创建和连接 bean 时,只使用最终有效的 bean 定义。同样对于 web application context ,默认情况下 bean 是急切初始化的,因此这种开销通常是在服务器启动时部署应用程序时产生的。因此,从应用程序服务请求的上下文中的性能角度来看,除了服务器启动时的开销和一些烦人的日志消息之外,这没有这样的影响。

关于java - 多次导入相同的 spring 应用程序上下文文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22286725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com