Java 8 为用于创建 MBean 或 MXBean 的接口引入了可视性要求的行为更改。所有 MBean 和 MXBean 接口都必须为公共接口。 在 Java 8 之前,虽然规范定义了接口应该为公共接口,但也允许使用非公共接口。
设置 jdk.jmx.mbeans.allowNonPublic 系统属性会将管理子系统还原为使用旧的行为,从而允许使用非公共管理接口。该属性被视为过渡属性,并且可能会在后续发行版中移除。
为了检测非公共 MBean 和 MXBean 接口,将在 Java 代码中标记以下情况:
@MXBean 注释的非公共接口@MXBean(true) 注释的非公共接口MXBean 结尾的非公共接口MBean 结尾的非公共接口以下示例显示了此规则所标记的非公共接口。
接口 Example1MBean {}
接口 Example2MXBean {}
@MXBean interface Example3Interface {}
@MXBean(true) 接口 Example4Interface {}
以下示例显示了此规则不标记的接口(因为这些接口已经是公共接口或被注释为非 MXBean)。
公共接口 Example5MBean{}
公共接口 Example6MXBean{}
@MXBean(false) 接口 Example7MXBean {}
此规则具有用于将接口可视性设置为 public的自动修订。 将定制配置复制到应用程序构建文件以启用修订自动化。
有关其他信息,请参阅 Package javax.management Java 文档。