首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring初始化顺序

Spring初始化顺序
EN

Stack Overflow用户
提问于 2008-10-14 16:29:50
回答 2查看 7.2K关注 0票数 2

假设我有几个spring bean:

代码语言:javascript
运行
复制
<beans>
   <bean name="A" ... />
   <bean name="B" ... />
</beans>

"B“公开了一个不需要"A”的远程服务。假设"A“花了不可忽略的时间来加载。这意味着在重新启动周期中,应用程序挂起远程客户端,该客户端实际上可以连接到服务器,但会等待响应,直到spring容器完全初始化。

我希望能够做的是让"B“远程服务立即响应,即使(基于应用程序状态)它只能返回NOT_READY或类似的内容。然而,即使您将bean指定为lazy-init并且与加载顺序无关,容器也会强制等待,直到它的所有bean都被初始化。

我怀疑让"B“立即可用意味着spring必须提供一个部分初始化的容器,这听起来很糟糕。但是,我非常感谢任何人得到的关于初始化顺序的任何信息,以及您是否找到了任何合理的解决方法。

EN

Stack Overflow用户

发布于 2008-10-14 19:56:41

我不明白,为什么"A花了不可忽略的时间来加载“,但也许你可以通过重构A来懒惰地初始化自己。不要使用InitializingBean或处理ApplicationEvent。只需在要处理的第一个请求上进行初始化。这会减慢第一个请求的速度!

另一种可能是将初始化移动到由处理ApplicationEvent的bean创建的单独线程。线程以异步方式调用bean的初始化方法。小心处理对未初始化bean的请求!

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/201888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档