遵循Java SE 6 中的 MXBean:在没有特殊 JMX 客户端配置的情况下捆绑值我设法实现了一个 MXBean,它公开了Map<String, String>
一个配置参数列表。它按预期出现在 JConsole 中,但所有值都是只读的。
在 MXBEans 文章中,此插图显示了一个示例,其中属性是只读的,因为它们是内存使用值。
有没有办法让 JConsole 中的属性可编辑?
遵循Java SE 6 中的 MXBean:在没有特殊 JMX 客户端配置的情况下捆绑值我设法实现了一个 MXBean,它公开了Map<String, String>
一个配置参数列表。它按预期出现在 JConsole 中,但所有值都是只读的。
在 MXBEans 文章中,此插图显示了一个示例,其中属性是只读的,因为它们是内存使用值。
有没有办法让 JConsole 中的属性可编辑?
我认为您不能使单个元素可写(从远程 API 的角度考虑,复合类型只是一个 DTO,mbean 是远程接口),但我确实认为您可以使整个复合属性可写,例如:
public Map<String,String> getConfig() {}
public void setConfig(Map<String,String> newConfig) {}
也就是说,我不确定 jconsole 是否支持编辑复合属性,即使它们是可写的。
尝试使用 Spring MBeanExporter。
我不确定这对你是否可行。
但这很容易。这是一个很好的例子。
谢谢。
要使属性可从 JConsole 写入,您还需要在 MBean 接口中公开 setter 方法。
package com.example;
public interface HelloMBean {
public void sayHello();
public int add(int x, int y);
public String getName();
public int getCacheSize();
public void setCacheSize(int size);
}
在这个名称中是 readOnly,cacheSize 被读取以及写入启用。