MBean 和 MXBean 介面必須為公用

Java 8 對用來建立 MBean 或 MXBean 的介面的可見性需求引進行為變更。 所有 MBean 和 MXBean 介面必須為公用。 在 Java 8 之前,即使規格已定義這些介面應該為公用,但仍容許非公用介面。

設定 jdk.jmx.mbeans.allowNonPublic 系統內容會使管理子系統回復為使用舊的行為,而容許非公用管理介面。 此內容只是過渡性,可能在後續版本中移除。

為了偵測非公用 MBean 和 MXBean 介面,Java 程式碼中會標示下列狀況:

因為 MBean 介面名稱以 MBean 結尾只是慣例,不是必要條件,當您建立管理 Bean 時,MBeanServer registerMBeancreateMBean 方法的任何呼叫也會標示來強調顯示此 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 registerMBeancreateMBean 方法的呼叫只會標示來強調顯示行為變更, 以防未標示您的介面。

如需相關資訊,請參閱 套件 javax.management Java 說明文件。