Java 管理扩展 (JMX) 提供了一种标准机制来监视和管理应用程序。 默认情况下,此功能处于未启用状态。 可以通过将 configuration 属性设置为 来打开它。 Spring Boot 将最合适的 Bean 公开为 ID。 任何使用 Spring JMX 注解(、 或 )注解的 bean 都会暴露给它。spring.jmx.enabledtrueMBeanServermbeanServer@ManagedResource@ManagedAttribute@ManagedOperationSpring中文文档

如果您的平台提供了标准,则Spring Boot会使用该标准,并在必要时默认为VM。 如果所有这些都失败了,则创建一个新的。MBeanServerMBeanServerMBeanServerSpring中文文档

有关更多详细信息,请参阅 JmxAutoConfiguration 类。Spring中文文档

默认情况下,Spring Boot 还会将管理端点公开为域下的 JMX MBean。 要完全控制 JMX 域中的端点注册,请考虑注册您自己的实现。org.springframework.bootEndpointObjectNameFactorySpring中文文档

自定义 MBean 名称

MBean 的名称通常由端点生成。 例如,终结点公开为 .idhealthorg.springframework.boot:type=Endpoint,name=HealthSpring中文文档

如果您的应用程序包含多个 Spring ,您可能会发现名称冲突。 若要解决此问题,可以将该属性设置为,以便 MBean 名称始终是唯一的。ApplicationContextspring.jmx.unique-namestrueSpring中文文档

您还可以自定义在其下公开端点的 JMX 域。 以下设置显示了在以下位置执行此操作的示例:application.propertiesSpring中文文档

spring.jmx.unique-names=true
management.endpoints.jmx.domain=com.example.myapp
spring:
  jmx:
    unique-names: true
management:
  endpoints:
    jmx:
      domain: "com.example.myapp"

禁用 JMX 端点

如果不想通过 JMX 公开端点,可以将该属性设置为 ,如以下示例所示:management.endpoints.jmx.exposure.exclude*Spring中文文档

management.endpoints.jmx.exposure.exclude=*
management:
  endpoints:
    jmx:
      exposure:
        exclude: "*"