如何使用 Spring Java 配置注册 Spring 数据 Mongo MBean?

How to register Spring Data Mongo MBeans using Spring Java Configuration?

我想按照 Spring Data MongoDB Manual 中的描述启用 Mongo JMX MBeans 的注册,而不是使用 JMX 配置,而是在 Java 中。所以我为

寻找相应的 Java 代码
<mongo:jmx />

元素。这个存在吗?

当试图为任何 Spring XML 解析器创建的 bean 找到等效项时,第一步是查看命名空间处理程序,在本例中为 MongoNamespaceHandler。检查 class 表明 jmx 名称空间由 MongoJmxParser 解析。下一步是查看它,您会看到它定义了一堆 bean;参见 here

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);

}