0
在ThreadLocal中春JMX设置的值工作不一致在ThreadLocal的春季JMX设置的值工作不一致
@ManagedResource(objectName = "MAN-TEST:name=SetValue", description = "Set Value for JMX")
@Component
public class ValueSetJMX {
private static ThreadLocal<String> jmxValue = new ThreadLocal<String>();
@ManagedAttribute
public void setManValue(String valueJMX) {
jmxValue.set(valueJMX)
}
@ManagedAttribute
public String getManValue() {
return jmxValue.get();
}
}
为setManValue设定值后,如果我调用getManValue()多次,结果将是有时为空。
有没有解决这个
getManValue()用于所有JMX操作(使用方面设置的全局值)如果两个用户操作这些bean并设置两个不同的值,那么这是一个问题,为此如何获得并发性。 –
JMX操作是离散的;您不能在不添加用户代码的情况下在调用之间存储状态(并根据某些输入数据访问状态)。 'ThreadLocal'只是不会削减它。 –