我在代码中添加了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中。