Spring JMX - <context:mbean-server>的目的

时间:2016-03-27 08:17:54

标签: java spring tomcat jmx spring-jmx

我正在经历&#39;第20章 - 使用JMX管理Spring bean&#39;来自“春天的行动”一书#39; Craig Walls的第4版。第527页的本章中有一段。

从哪里开始MBean服务器?

根据配置,MBeanExporter假定它在应用程序服务器(例如Tomcat)或其他提供MBean服务器的上下文中运行。但是,如果您的Spring应用程序将独立运行,或者在不提供MBean服务器的容器中运行,那么您将需要在Spring上下文中配置MBean服务器。

在XML配置中, <context:mbean-server> 元素可以为您处理。在Java配置中,您需要采取更直接的方法并进行配置一个MBeanServerFactoryBean()类型的bean(这就是XML中的功能)。

我对上段有几个问题。

  1. 这是否意味着当我们在Tomcat等服务器上运行应用程序时,不再需要<context:mbean-server>声明?

  2. 如果上面的陈述为真,那么当我们在像Tomcat或任何其他应用服务器这样的服务器上运行时,谁负责定位MBean服务器?

  3. 提前致谢!

1 个答案:

答案 0 :(得分:1)

这些信息有点过时......

  

或提供MBean服务器的其他一些上下文。

从Java 5开始(如果我没记错的话),JVM有一个内置的MBeanServer。在此之前,您必须在App服务器中运行,或者提供其他MBeanServer,例如mx4j。

无论如何,你仍然需要服务器bean声明;它告诉Spring要使用哪个服务器(底层MBeanServerFactoryBean的{​​{1}}由XML命名空间解析器设置为true。如果该标志为false,则工厂bean将创建一个额外的MBeanServer。