Spring Boot 中的JMX使用


placeholder image
admin 发布于:2022-07-05 13:32:36
阅读:loading

JMX是Java管理扩展,通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存、重新加载配置文件以及手动执行一些特定的方法,我们可以使用JMX的扩展实现来满足我们的需要,同时Spring Boot提供了对于JMX的简单集成,也内置了一些方法可以直接被调用,此外我们项目中引用的Tomcat、logback、数据库连接池等也都实现了JMX,可以借助于JVM提供的多种工具来查看和管理对应的JMX接口,本篇文章使用Spring Boot支持的JMX方式来带你入个门。

1.自定义MBean

package cn.chendd.modules.mbean;

import ...;

/**
 * MBeanDemo
 *
 * @author chendd
 * @date 2022/7/5 11:00
 */
@Component
@ManagedResource(objectName = "cn.chendd.modules:name=MBeanDemo")
public class MBeanDemo {

    @ManagedAttribute(description = "获取系统名称")
    public String getName() {
        return "chendd";
    }

    @ManagedOperation(description = "输出Hello")
    @ManagedOperationParameters(value = {
            @ManagedOperationParameter(name = "name", description = "名称")
    })
    public String sayHello(String name) {
        return String.format("hello , %s" , name);
    }

    @ManagedOperation(description = "关闭服务器")
    public void shutdown() {
        System.exit(0);
    }

}

2.jconsole管理MBean

如果说不知道jconsole是啥就过分了,打开在%JDK_HOME%\bin\jconsole.exe文件,我们可以找到本机或者远程机器上的Java应用程序,以本文提供的代码示例为例,找到对应程序的选项,点击连接“按钮”进入,详细如下图所示:

image.png


image.png

image.png

3.其它说明

(1)MBeanDemo类中的相关注解在spring-context包中;

(2)某些版本的springboot需要引入“server.tomcat.mbeanregistry.enabled=true”和“spring.jmx.enabled=true”;

 点赞


 发表评论

当前回复:作者

 评论列表


留言区