MBean 和 MXBean 接口必须为公共接口

Java 8 为用于创建 MBean 或 MXBean 的接口引入了可视性要求的行为更改。所有 MBean 和 MXBean 接口都必须为公共接口。 在 Java 8 之前,虽然规范定义了接口应该为公共接口,但也允许使用非公共接口。

设置 jdk.jmx.mbeans.allowNonPublic 系统属性会将管理子系统还原为使用旧的行为,从而允许使用非公共管理接口。该属性被视为过渡属性,并且可能会在后续发行版中移除。

为了检测非公共 MBean 和 MXBean 接口,将在 Java 代码中标记以下情况:

以下示例显示了此规则所标记的非公共接口。

    接口 Example1MBean {}

    接口 Example2MXBean {}

    @MXBean interface Example3Interface {}

    @MXBean(true) 接口 Example4Interface {}

以下示例显示了此规则不标记的接口(因为这些接口已经是公共接口或被注释为非 MXBean)。

    公共接口 Example5MBean{}

    公共接口 Example6MXBean{}

    @MXBean(false) 接口 Example7MXBean {}

此规则具有用于将接口可视性设置为 public的自动修订。 将定制配置复制到应用程序构建文件以启用修订自动化。

有关其他信息,请参阅 Package javax.management Java 文档。