如何使用Spring Java Configuration注册Spring Data Mongo MBean?

时间:2017-08-25 13:33:43

标签: spring jmx spring-data-mongodb spring-jmx

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

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

元素。这是否存在?

1 个答案:

答案 0 :(得分:1)

当试图找到任何Spring XML解析器创建的bean的等价物时,第一步是查看命名空间处理程序,在本例中为MongoNamespaceHandler。检查该类显示jmx解析MongoJmxParser命名空间。下一步是看看它,你会发现它定义了一堆豆子;见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);

}