【发布时间】:2021-01-28 19:22:22
【问题描述】:
对于 Spring Boot (v2.4.2),在Monitoring and Management over JMX 部分指出:
Java Management Extensions (JMX) provide a standard mechanism to monitor and manage applications.
By default, this feature is not enabled and can be turned on by setting the configuration property
spring.jmx.enabled to true. Spring Boot exposes management endpoints as JMX MBeans under
the org.springframework.boot domain by default.
因此spring.jmx.enabled默认为false。
我不理解这种行为,因为对于基于 web 的快速 SB 应用程序,带有开发工具和执行器,甚至在声明 spring.jmx.enabled 时带有 false 和 Dev Tools 和 @ 987654334@的依赖我总能看到org.springframework.boot域如下:
-
spring.jmx.enabled=false和dev tools和Actuator
-
spring.jmx.enabled=false和不带dev tools和带Actuator
-
spring.jmx.enabled=true且不带dev tools且不带Actuator
-
spring.jmx.enabled=false和没有dev tools和没有Actuator
观察:我在使用和不使用 Dev Tools 和 Actuator 的情况下进行了测试,因为我认为它们中的任何一个都在内部将 spring.jmx.enabled 覆盖为 true,但事实并非如此正如我为最新的场景所确认的那样
那么当spring.jmx.enabled 为false 和true 时,应该观察到的显式区别是什么?在上面共享的场景中,总是出现org.springframework.boot 域,我可以访问管理方法上面显示的所有场景。我认为带有 false 的 spring.jmx.enabled 应该不从一开始就暴露 org.springframework.boot 域。
【问题讨论】:
-
你是如何启动应用程序的?
SpringApplication管理 bean 的存在告诉我,它是使用通常由工具使用的spring.application.admin.enabled=true启动的。 -
我正在使用
Boot Dashboard视图通过 STS 执行应用程序。我没有在任何地方明确配置spring.application.admin.enabled属性 -
这方面的文档令人震惊。
标签: spring-boot jmx spring-boot-actuator spring-jmx