Java 8 對用來建立 MBean 或 MXBean 的介面的可見性需求引進行為變更。 所有 MBean 和 MXBean 介面必須為公用。 在 Java 8 之前,即使規格已定義這些介面應該為公用,但仍容許非公用介面。
設定 jdk.jmx.mbeans.allowNonPublic 系統內容會使管理子系統回復為使用舊的行為,而容許非公用管理介面。
此內容只是過渡性,可能在後續版本中移除。
為了偵測非公用 MBean 和 MXBean 介面,Java 程式碼中會標示下列狀況:
@MXBean 標註@MXBean(true) 標註MXBeanMBean
因為 MBean 介面名稱以 MBean 結尾只是慣例,不是必要條件,當您建立管理 Bean 時,MBeanServer registerMBean
或 createMBean 方法的任何呼叫也會標示來強調顯示此 Java 8 差異。
如果您的管理 Bean 介面未遵循先前列出的慣例,請手動驗證它們使用 public 介面。
下列範例顯示此規則所標示的非公用介面。
interface Example1MBean {}
interface Example2MXBean {}
@MXBean
interface Example3Interface {}
@MXBean(true)
interface Example4Interface {}
|
下列範例顯示此規則未標示的介面,因為它們已是公用或已標註為不是 MXBean。
public interface Example5MBean{}
public interface Example6MXBean{}
@MXBean(false)
interface Example7MXBean {}
|
此規則具有自動化修正程式,可將介面可見性設為 public。 將自訂配置複製到應用程式建置檔,以啟用修正程式自動化。
對 MBeanServer registerMBean
和 createMBean
方法的呼叫只會標示來強調顯示行為變更,
以防未標示您的介面。
如需相關資訊,請參閱 套件 javax.management Java 說明文件。