【发布时间】:2010-05-07 11:26:06
【问题描述】:
我们在 init 方法中使用 WebApplicationContextUtils 处理 Web 应用程序和自动装配 bean。
您能否澄清一些有关 bean 初始化的细节?
问题源于静态工厂方法。
假设有一个在静态工厂方法中创建的 bean。
正如我们所见,当 web 应用程序被部署时,ContextLoaderListener 会初始化所有存在的 bean
在 Spring xml 配置文件中。
现在发生这样的事情。在静态工厂方法中,我们运行一个开始计时的计时器。
但实际上我们不希望它开始滴答作响,除非 bean 被注入到对象的属性中!
这是第一个问题 - 所有的 bean 在部署时都会自动初始化 - 对吗?
之后,当我们需要注入时,它只是感觉与初始化期间创建的对象的地址的链接,尽管 OBJECT WAS CREATED ON WEB APP DEPLOY,立即! (我假设默认的单例创建 Spring 行为)
第二个问题:一个 Web 应用程序的所有副本是否都使用相同的 bean,所以所有 bean 都是 WEB-APP 范围的,每个 Spring bean 都在该 Web 应用程序运行的所有副本之间共享?
【问题讨论】: