Java Spring Framework jmx托管的annotation@ManagedAttribute未在MBe



我在代码中添加了Spring注释但是当通过可视化vm连接时,方法"myExample()"不会显示在JMX bean列表中

我的代码:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jmx.export.annotation.ManagedAttribute;
import org.springframework.jmx.export.annotation.ManagedResource;
import org.springframework.stereotype.Component;

@Component
@ManagedResource
public class MyClass {
   @Autowired
   private Example exampleService;
   @ManagedAttribute
   public String myExample() {
      return exampleService.getSomething().toString();
   }
} 

知道为什么会发生这种事吗?

您应该使用@ManagedOperation@ManagedAttribute仅用于getter/setter方法。

这听起来很奇怪,但您可以通过将myExample重命名为getMyExample来修复它。

@ManagedAttribute
public String getMyExample() {
    return exampleService.getSomething().toString();
}

它甚至会显示为";MyExample";在例如visualVM中。

相关内容

  • 没有找到相关文章

最新更新