首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有没有办法获得在JVM中运行的所有Spring应用程序上下文的列表?

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

Stack Overflow用户
提问于 2009-02-16 14:58:15
回答 4查看 2.6K关注 0票数 7

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-02-16 15:41:13

编辑:这并没有什么实际的帮助,因为每个web.xml都必须有相同的监听器

您可以让ServletContextAttributeListener监听标准WebApplicationContext 属性的插入,然后通知某个集中式监视器?

未测试:

代码语言:javascript
代码运行次数:0
运行
复制
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
}
票数 2
EN

Stack Overflow用户

发布于 2009-02-16 15:37:57

不-对这两个问题都是。

对所有servlet上下文的访问将是一个安全问题。您将能够检查和/或操作其他and应用程序。唯一知道所有servlet上下文的就是容器本身。但这是内部实现,没有api。

Spring上下文访问是类似的,但是如果你指的是一个webapp中的所有spring上下文,它们将创建一个层次结构-例如控制器的层次结构。在根spring上下文中实现org.springframework.context.ApplicationListener as bean (由web.xml中配置的org.springframework.web.context.ContextLoaderListener初始化)可以通知您启动、停止、关闭或刷新的上下文。

票数 3
EN

Stack Overflow用户

发布于 2009-03-31 01:48:07

您可以尝试使用Spring应用程序管理套件

http://www.springsource.com/products/ams

虽然不确定所涉及的成本是多少,但无法想象它是便宜的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/553546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档