我正在阅读Craig Walls的《Spring In Action》第4版中的"第20章-使用JMX管理Spring bean"。本章第527页有一段。
MBean服务器是从哪里来的?
根据配置,MBeanExporter假设它运行在应用程序服务器(如Tomcat)或提供MBean服务器的其他上下文中。但是,如果您的Spring应用程序将独立运行,或者在不提供MBean服务器的容器中运行,则需要在Spring上下文中配置MBean服务器。
在XML配置中,<context:mbean-server>
元素可以为您处理此问题在Java配置中,您需要采取更直接的方法,配置MBeanServerFactoryBean()类型的bean(这在XML中对您有用)。
我对上一段有几个问题。
-
这是否意味着当我们在Tomcat这样的服务器上运行应用程序时,不再需要
<context:mbean-server>
声明? -
如果上面的语句是真的,那么当我们在Tomcat或任何其他应用程序服务器上运行时,谁来负责定位MBean服务器?
提前感谢!
该信息有点过时。。。
或者提供MBean服务器的一些其他上下文。
从Java5开始(如果我没有记错的话),JVM有一个内置的MBeanServer。在此之前,您必须在应用程序服务器中运行,或者提供一些其他MBeanServer
,如mx4j。
无论如何,您仍然需要服务器bean声明;它告诉Spring要使用哪个服务器(底层MBeanServerFactoryBean
的locateExistingServerIfPossible
被XML命名空间解析器设置为true。如果该标志为false,工厂bean将创建一个额外的MBeanServer.