Servlets ServletContextListener针对不同战争的执行顺序
是否可以控制ServletContextListener在不同战争中的执行顺序Servlets ServletContextListener针对不同战争的执行顺序,servlets,war,servletcontextlistener,Servlets,War,Servletcontextlistener,是否可以控制ServletContextListener在不同战争中的执行顺序 假设web服务中有3个独立的模块A、B和C。它们可以按任何顺序初始化,并且不会产生任何后果。但是,如果存在可选模块D,则需要首先对其进行初始化,并且可能会影响其他模块。这种配置是否可以通过Spring实现?我想到的唯一一件事是拥有一个全局ServletContextListener,它可以轮询类路径上是否存在每个模块的init类,但该解决方案看起来相当混乱。您可以在web-fragment.xml或web.xml中定
假设web服务中有3个独立的模块A、B和C。它们可以按任何顺序初始化,并且不会产生任何后果。但是,如果存在可选模块D,则需要首先对其进行初始化,并且可能会影响其他模块。这种配置是否可以通过Spring实现?我想到的唯一一件事是拥有一个全局ServletContextListener,它可以轮询类路径上是否存在每个模块的init类,但该解决方案看起来相当混乱。您可以在web-fragment.xml或web.xml中定义顺序。请参阅以下链接以了解更多信息 当所有WAR都捆绑在EAR中时,可以管理应用程序的启动。它可以通过在
application.xmkl
中添加true
来完成
如果所有的战争都是独立的,那么就没有标准的方式。但是,有一些特定于容器的特性允许您这样做
参考文献:
<web-app>
...
<absolute-ordering>
<name>A</name>
<others/>
<name>B</name>
<absolute-ordering>
</web-app>
绝对排序,或在web fragment.xml中定义相对排序
以下是绝对排序的工作原理:
<web-app>
...
<absolute-ordering>
<name>A</name>
<others/>
<name>B</name>
<absolute-ordering>
</web-app>
...
A.
B
如果web.xml中没有绝对顺序,容器将在web-fragment.xml中查找相对顺序。它看起来像这样:
<ordering>
<before>
<others />
</before>
</ordering>
我没有时间进一步研究这个问题,但我认为web-fragment.xml需要将所有模块添加到一些超级war中。如果我错了,请纠正我。我试图完成的是部署4场彼此不明确知道的独立战争。