分阶段负荷弹簧上下文(Load spring context in phases)

2019-09-19 03:29发布

这是那些奇怪的问题,人们会问一个 - 为什么?

因此,我将与我为什么要做到这一点,然后进入问题开始。 我想有在Spring上下文如何装载更多的控制。 举例来说,我不希望在同一时间加载域和网络API。 这将使资源可用之前他们的依赖已经准备就绪。 也可能有,我需要检查什么状态之前,我可以继续这个过程。 这么说来,会有模块/上下文之间的顺序。 也许不只是引导,而且在关机。

所以,问题是,我无法找到如何加载域范围内,那么当这个过程完成之后我会检查状态,最后加载API上下文的任何信息。 我想做到这一切从Java代码,因为我需要控制启动时的流量。 我有基础知识,SpringServlet加载网络环境中工作。 我还没有找到任何信息,如果它是可能加载一个背景下,等待和加载指的是第一个另一个上下文。

这可能是好事,知道我不使用JavaEE的,也不是一个容器。 我只使用与servlet和春天embeddded码头。 那么,有没有一种方法可以做到这一点?

Answer 1:

我建议考虑以下几点:

  • 阅读SmartLifeCyclePhased的扩展点的应用程序上下文的生命周期管理的秩序。 这个想法是,你有你的顶级重要豆实现的接口使得标准的应用程序上下文初始化也将被处理到那些豆子,你自定义的顺序。
  • 打破你的应用程序上下文XML文件成小块。 使用<import />中依赖于一个高/低上下文的那些。
  • 使用depends-on你的关键任务豆类属性,以保证相关性。
  • 使用InitializingBean上,你需要确保它的初始化后的依赖是满意为当前Bean的人。


Answer 2:

考虑懒加载豆类和懒惰代理。 所以bean将只在第一次使用创建...



文章来源: Load spring context in phases