这是人们会问的奇怪问题之一——为什么?
所以我将从我为什么要这样做开始,然后讨论这个问题。我想更好地控制 spring 上下文的加载方式。例如,我不想同时加载域和web-api。这将使资源在其依赖项准备好之前可用。
也可能我需要检查某些东西的状态,然后才能继续此过程。也就是说,模块/上下文之间会有顺序。也许不仅是启动,而且在关机时也是如此。
所以问题是我找不到任何有关如何加载域上下文的信息,然后当完成后我将检查状态并最后加载 api 上下文。我想从 java 代码中完成所有这些工作,因为我需要控制启动流程。我有使用 SpringServlet 加载网络上下文的基础知识。我没有找到任何信息是是否可以加载上下文,等待并加载引用第一个上下文的另一个上下文。
很高兴知道我没有使用 JavaEE 也没有使用容器。我只使用带有 servlet 和 spring 的嵌入式 Jetty。那么有没有办法可以做到这一点呢?
我建议考虑以下事项:
- Read SmartLifeCycle http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/SmartLifecycle.html and Phased http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/Phased.html用于应用程序上下文生命周期管理顺序的扩展点。这个想法是让您的顶级重要 bean 实现接口,以便标准应用程序上下文初始化也将按照您自定义的顺序处理到这些 bean。
- 将应用程序上下文 XML 文件分成更小的部分。使用
<import />
在依赖于更高/更低上下文的那些中。
- Use
depends-on
关键任务 bean 上的属性以确保依赖性。
- Use
InitializingBean
需要确保当前 bean 初始化后满足依赖关系。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)