此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.4spring-doc.cn

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.4spring-doc.cn

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

如果您的平台提供 standard ,则 Spring Boot 会使用该 Spring Boot 并在必要时默认为 VM 。 如果所有这些都失败了,则会创建一个新的。MBeanServerMBeanServerMBeanServerspring-doc.cn

spring.jmx.enabled仅影响 Spring 提供的 Management bean。 启用其他库(例如 Log4j2Quartz)提供的管理 Bean 是独立的。

有关更多详细信息,请参见JmxAutoConfiguration类。spring-doc.cn

默认情况下, Spring Boot 还将 Management 端点公开为域下的 JMX MBean。 要完全控制 JMX 域中的终端节点注册,请考虑注册您自己的实现。org.springframework.bootEndpointObjectNameFactoryspring-doc.cn

spring.jmx.enabled仅影响 Spring 提供的 Management bean。 启用其他库(例如 Log4j2Quartz)提供的管理 Bean 是独立的。

自定义 MBean 名称

MBean 的名称通常是从终端节点生成的。 例如,终端节点公开为 .idhealthorg.springframework.boot:type=Endpoint,name=Healthspring-doc.cn

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

您还可以自定义在其下公开终端节点的 JMX 域。 以下设置显示了在 中执行此操作的示例:application.propertiesspring-doc.cn

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-doc.cn

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