0

我想按照Spring Data MongoDB Manual中的描述启用 Mongo JMX MBean 的注册,而不是使用 JMX 配置,而是使用 Java。所以我寻找相应的Java代码

<mongo:jmx />

元素。这存在吗?

4

1 回答 1

1

当试图找到任何 Spring XML 解析器创建的 bean 的等价物时,第一步是查看命名空间处理程序,在这种情况下是MongoNamespaceHandler. 检查该类表明jmx命名空间由MongoJmxParser. 下一步是查看它,您会看到它定义了一堆 bean;看这里

protected void registerJmxComponents(String mongoRefName, Element element, ParserContext parserContext) {
    Object eleSource = parserContext.extractSource(element);

    CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(element.getTagName(), eleSource);

    createBeanDefEntry(AssertMetrics.class, compositeDef, mongoRefName, eleSource, parserContext);
    createBeanDefEntry(BackgroundFlushingMetrics.class, compositeDef, mongoRefName, eleSource, parserContext);
    createBeanDefEntry(BtreeIndexCounters.class, compositeDef, mongoRefName, eleSource, parserContext);
    createBeanDefEntry(ConnectionMetrics.class, compositeDef, mongoRefName, eleSource, parserContext);
    createBeanDefEntry(GlobalLockMetrics.class, compositeDef, mongoRefName, eleSource, parserContext);
    createBeanDefEntry(MemoryMetrics.class, compositeDef, mongoRefName, eleSource, parserContext);
    createBeanDefEntry(OperationCounters.class, compositeDef, mongoRefName, eleSource, parserContext);
    createBeanDefEntry(ServerInfo.class, compositeDef, mongoRefName, eleSource, parserContext);
    createBeanDefEntry(MongoAdmin.class, compositeDef, mongoRefName, eleSource, parserContext);

    parserContext.registerComponent(compositeDef);

}
于 2017-08-25T15:04:25.143 回答