java - 有没有办法获取在 JVM 中运行的所有 Spring 应用程序上下文的列表?

标签 java spring servlets

我希望能够从我的 servlet 容器中运行的 Web 应用程序中获取所有 Spring 应用程序上下文的列表。这样我就可以重新初始化上下文,而无需重新启动或重新加载我的容器或 Web 应用程序。

这可能吗?如果是这样,如何?有没有办法通过 Servlet API 获取在 servlet 容器实例上运行的所有 servlet 上下文的列表?

最佳答案

[编辑:这并没有什么用,因为每个 web.xml 都必须有相同的监听器]

你可以有一个 ServletContextAttributeListener留意标准的插入 WebApplicationContext 属性,然后通知一些集中监视器?

未测试:

public class SpringWACListener implements ServletContextAttributeListener {
    public void attributeAdded(ServletContextAttributeEvent scab) {
        if (WebApplicationContext.
            ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE.
            equals(scab.getName()) {
            myCentralisedMonitor.notify("added");
        }
    }
    // same for others
}

关于java - 有没有办法获取在 JVM 中运行的所有 Spring 应用程序上下文的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/553546/

相关文章:

mysql - SQL 错误 : 1452, SQL 状态:23000 |无法添加或更新子行:外键约束失败

java - 停止 servlet 响应

java - 如何在启动 Android LibGDX 项目时修复 NoClassDefFoundError?

Activity onCreate 中的 java.util.ConcurrentModificationException

java - 将对象作为 "root"放入 VelocityContext

java - 需要 Spring 事务的帮助来进行巨大的日期操作

java - 如何优化两个相似的方法?

java - Spring 应用程序中已创建的特定 Prototype-bean 实体的数量?

java - servlet 响应何时提交或刷新?

javascript - 同一页面提交表单后弹窗