假设我有一对夫妇春豆:春天初始化顺序
<beans>
<bean name="A" ... />
<bean name="B" ... />
</beans>
“B”暴露了一个远程服务,它不需要“A”。假设“A”需要一个不可忽略的时间来加载。这意味着在重启周期中,应用程序会挂起远程客户端,该远程客户端可以实际连接到服务器,但等待响应,直到spring容器完全初始化。
我想什么,能够做的是立即有“B”远程服务响应,即使(基于应用程序的状态),它只能返回NOT_READY或一些这样的。但是,容器会强制等待,直到它的所有bean都被初始化,即使您将bean指定为lazy-init并且与加载顺序无关。
我怀疑是有“B”可立即将意味着春天将不得不作出可用部分初始化容器,这听起来很糟糕。不过,我很感谢任何人获得初始化顺序的信息,以及您是否找到了任何合理的解决方法。
你能解释为何bean中采用“不可忽略的时间”来实例化本身?是否可以重新分解Bean A,以便不可忽略的时间成为在实例化过程之外调用的函数? – 2008-10-14 19:36:37