Monitoring and Management over JMX
Java 管理扩展 (JMX) 提供了监视和管理应用程序的标准机制。默认情况下,此功能未启用。您可以通过将 configprop:spring.jmx.enabled[] 配置属性设置为“true
”来启用它。Spring Boot 作为 ID 为“mbeanServer
”的 Bean 公开了最合适的“MBeanServer
”。使用 Spring JMX 注释(“@ManagedResource
”、“@ManagedAttribute
”或“@ManagedOperation
”)注释的任何 Bean 都可用于它。
如果您的平台提供标准“MBeanServer
”,Spring Boot 将使用它并根据需要默认为 VM“MBeanServer
”。如果所有方法都失败,则将新建“MBeanServer
”。
有关更多详细信息,请参阅 {code-spring-boot-autoconfigure-src}/jmx/JmxAutoConfiguration.java[JmxAutoConfiguration
] 类。
默认情况下,Spring Boot 还会在 org.springframework.boot
域下将管理端点作为 JMX MBean 暴露出来。如需对 JMX 域中的端点注册进行全控制,请考虑注册自己的 EndpointObjectNameFactory
实现。
Customizing MBean Names
MBean 的名称通常由端点的 id
生成。例如,health
端点被暴露为 org.springframework.boot:type=Endpoint,name=Health
。
如果你的应用程序包含多个 Spring ApplicationContext
,你可能会发现名称冲突。为解决该问题,可以将 configprop:spring.jmx.unique-names[] 属性设置为 true
,以便 MBean 名称始终是唯一的。
还可自定义端点暴露的 JMX 域。以下设置展示了在 application.properties
中执行此操作的一个示例:
spring: jmx: unique-names: true management: endpoints: jmx: domain: "com.example.myapp"