2

这是人们会问的奇怪问题之一——为什么?

所以我将从我为什么要这样做开始,然后讨论这个问题。我想更好地控制弹簧上下文的加载方式。例如,我不想同时加载域和 web-api。这将使资源在它们的依赖项准备好之前可用。在继续此过程之前,我可能还需要检查某些东西的状态。也就是说,模块/上下文之间会有顺序。也许不仅在启动,而且在关机。

所以问题是我找不到有关如何加载域上下文的任何信息,然后当完成后我会检查状态并最后加载 api 上下文。我想从 java 代码中完成所有这些,因为我需要控制启动流程。我有使用 SpringServlet 加载 web 上下文的基础知识。我没有找到任何信息是是否可以加载上下文,等待并加载另一个引用第一个上下文的上下文。

很高兴知道我没有使用 JavaEE 也没有使用容器。我只使用带有 servlet 和 spring 的嵌入式 Jetty。那么有没有办法做到这一点?

4

2 回答 2

1

我建议考虑以下:

  • 阅读SmartLifeCyclePhased获取有关应用程序上下文生命周期管理顺序的扩展点。这个想法是让您的顶级重要 bean 实现接口,以便标准应用程序上下文初始化也将按照您自定义的顺序处理给这些 bean。
  • 将您的应用程序上下文 XML 文件分成更小的部分。<import />在依赖于更高/更低上下文的环境中使用。
  • 在关键任务 bean 上使用depends-on属性来确保依赖关系。
  • 用于InitializingBean您需要确保在初始化后当前 bean 的依赖关系得到满足的那些。
于 2012-07-05T07:36:13.813 回答
0

考虑延迟加载的 bean 和延迟代理。所以bean只会在第一次使用时创建......

于 2012-07-05T07:58:46.010 回答