gpt4 book ai didi

java - Web 应用程序中的 Spring bean 初始化

转载 作者:行者123 更新时间:2023-12-01 16:05:01 25 4
gpt4 key购买 nike

我们在 init 方法中使用 WebApplicationContextUtils 来处理 Web 应用程序和 Autowiring bean。

您能澄清一些有关 Bean 初始化的细节吗?

问题是由静态工厂方法引起的。

假设有一个在静态工厂方法中创建的 bean。

正如我们所见,当部署 Web 应用程序时,ContextLoaderListener 会初始化所有存在的 bean

在 Spring xml 配置文件中。

现在就发生了这样的事情。在静态工厂方法中,我们运行一个开始计时的计时器。

但实际上我们不希望它开始计时,除非将 bean 注入(inject)到对象的属性中!

这是第一个问题 - 所有 bean 都会在部署时自动初始化 - 正确吗?

之后,当我们需要注入(inject)时,它只是感觉到与初始化期间创建的对象的地址的链接,尽管对象是在 Web 应用程序部署上立即创建的! (我假设 Spring 的默认单例创建行为)

第二个问题:Web 应用程序的所有副本都使用相同的 bean,因此所有 bean 都是 WEB-APP 范围的,每个 Spring bean 都在运行的该 Web 应用程序的所有副本之间共享?

最佳答案

That is question number one - all the beans are automatically initialized on deploy - correct?

除非您启用某种延迟加载,否则是的。

Second question: are all copies of a web app use the same beans, so all beans are WEB-APP wide, every Spring bean is shared between all the copies of this web app running?

我认为这里对于“网络应用程序的副本”的含义存在一些混淆。您的意思是您正在将相同的 Web 应用程序(代码和文件)部署到多个上下文路径下的应用程序服务器吗?即,将您的 webapp 项目部署为 webappCopy1webappCopy2webappCopy3 等?如果是这样,那么每个应用程序都是隔离的,并创建它自己单独的 bean 工厂。

关于java - Web 应用程序中的 Spring bean 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788144/

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