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'只是不會削減它。 –