我是靠谱客的博主 无限时光,最近开发中收集的这篇文章主要介绍Spring JMX注解的使用方式:@ManagedResource @ManagedOperation @ManagedAttribute,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
在日常开发过程中,经常会遇到需要加字段、加表的情况,不可避免的就需要去刷数据,常用的方法是价格http接口或dubbo接口,外部调用触发割接程序。这里介绍一直更简单的方式,使用spring的注解,把割接程序暴露给jmx,直接用工具连jvm,查看MBean执行割接方法即可。
- @ManagedResource 加在Class上,Spring指示向 JMX 服务器注册类的实例
- @ManagedOperation 加在Method上,Spring指示将指定方法公开为 JMX 操作(仅get/set方法无效)
- @ManagedAttribute 加在Method上,Spring将指定的 bean 属性公开为 JMX 属性(仅get/set方法生效)
一、代码使用示例
import org.springframework.jmx.export.annotation.*;
import org.springframework.stereotype.Service;
/**
* @author lfg
* @version 1.0
*/
@Service
@ManagedResource(description = "spring jmx注解的demo类")
public class ManagedDemo {
@ManagedOperation(description = "执行方法示例 execReturnString")
//@ManagedOperationParameter 仅入参的文档注释,没实际意义
@ManagedOperationParameters(value = {
@ManagedOperationParameter(name = "paramOne", description = "this is paramOne desc"),
@ManagedOperationParameter(name = "paramTwo", description = "this is paramTwo desc")
})
public String execReturnString(String paramOne, String paramTwo) {
return paramOne + "-" + paramTwo;
}
@ManagedOperation(description = "执行方法示例 execVoid")
public void execVoid() {
}
@ManagedAttribute(description = "ManagedAttribute 使用示例")
public String getProperties() {
return "this is ManagedAttribute";
}
}
二、效果展示
以下示例使用Jconsole工具,读者也可以使用自己喜欢的JVM工具,例如JProfiler ,MAT,VisualVM ,jmc等等
如执行报错,使用jmc能看到具体错误原因,作者遇到过aop处理参数有问题,导致@ManagedResource都无法使用的情况
1.@ManagedResource
如图所示MBean中已经暴露出该类了
2.@ManagedOperation
如图所示,jmx中可以填入方法参数,并执行方法,获得返回值。需要注意的是,如想在jmx中执行方法,类上需要加@ManagedResource,把Bean暴露给JMX,否则类都不可见,执行方法就更无从谈起
4. @ManagedAttribute
需要将Bean中属性值暴露出去,或者修改属性值的时候可使用该注解
最后
以上就是无限时光为你收集整理的Spring JMX注解的使用方式:@ManagedResource @ManagedOperation @ManagedAttribute的全部内容,希望文章能够帮你解决Spring JMX注解的使用方式:@ManagedResource @ManagedOperation @ManagedAttribute所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复