如何为生成类的spring jmx注释自动生成文档

问题描述

|| 我有一些使用这些弹簧注释的代码:
org.springframework.jmx.export.annotation.ManagedAttribute;
org.springframework.jmx.export.annotation.ManagedOperation;
org.springframework.jmx.export.annotation.ManagedOperationParameter;
org.springframework.jmx.export.annotation.ManagedOperationParameters;
org.springframework.jmx.export.annotation.ManagedResource;
我想使用注释中的注释生成一些文档(甚至只是javadocs),例如考虑以下方法?
 @ManagedOperation(description=\"Does foo to bar\")
 @ManagedOperationParameters({
 @ManagedOperationParameter(name = \"bar\",description = \"The bar you want to foo.\")})    
 public long fooBar( Bar bar) throws Exception {
   ...
 }
有什么方法可以为此自动生成文档,还是我必须在javadoc中复制所有注释字符串?     

解决方法

        首先,使用委托给getRegisteredObjectNames()的公共方法创建自定义AnnotationMbeanExporter。使用它作为您的mbeanExporter。 例如:
@Component
// This is a copy of the AnnotationMBeanExporter with a public version of getRegisteredObjectNames()
public class AnnotationMBeanExporter extends MBeanExporter {

  @Autowired
  MBeanServer mbeanServer;

  AnnotationJmxAttributeSource annotationSource = new AnnotationJmxAttributeSource();

  AnnotationMBeanExporter() {
      setServer(mbeanServer);
      setNamingStrategy(new MetadataNamingStrategy(annotationSource));
      setAssembler(new MetadataMBeanInfoAssembler(annotationSource));
      setAutodetectMode(MBeanExporter.AUTODETECT_ALL);
  }

  public ObjectName[] getExportedObjectNames() {
    return getRegisteredObjectNames();
  }
}
然后对于您的报告,遍历从getExportedObjectNames()返回的对象名称,并获取每个JMX bean的相关元数据。 例如:
    for (ObjectName objectName: mbeanExporter.getExportedObjectNames()) {
      MBeanInfo mbeanInfo = mbeanServer.getMBeanInfo(objectName);
      MBeanOperationInfo[] operations = mbeanInfo.getOperations();
      // etc.
    }
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...