我有一个 Tomcat 7 webapp,其中有两个不同的ServletContextListener
.
例子:
听众 A
public class ListenerA implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce){
ObjectA objectA = new ObjectA();
context.setAttribute("objectA", objectA);
}
...
}
听众乙
public class ListenerB implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce){
ObjectB objectB = new ObjectB();
context.setAttribute("objectB", objectB);
}
...
}
web.xml
...
<listener>
<description>ListenerA</description>
<listener-class>com.example.web</listener-class>
</listener>
<listener>
<description>ListenerB</description>
<listener-class>com.example.web</listener-class>
</listener>
...
¿ 出现顺序是否web.xml
会影响加载过程,或者它们是否加载到不同的线程中?
我想知道是否可以从 ListenerB 的上下文中获取 ObjectA。我总是可以将两个侦听器合并为一个唯一的侦听器,这样我就可以在同一个侦听器中同时拥有对象 A 和 B,但我想知道这是否可能。
我知道我可以选择attributeAdded
从ServletContextAttributeEvent
界面使用,但是,这是否足以完成工作,或者如果 ListenerB 在 ListenerA 之前加载,它会失败吗?