第20章-使用JMX管理Spring Bean

本文详细介绍了如何使用Spring的JMX模块将Spring Bean导出为MBean,包括通过名称暴露方法、使用接口定义MBean操作、注解驱动的MBean以及处理MBean冲突。此外,还探讨了远程管理Spring Bean和处理JMX通知的方法,为运行时管理应用配置提供了可能。
摘要由CSDN通过智能技术生成

使用JMX管理Spring Bean

学习内容

Spring bean暴露为MBean

远程管理Spring Bean

处理JMX通知

应用背景

SpringDI的支持是通过在应用中配置Bean属性,这是一种非常不错的方法。不过,一旦应用已经部署并且正在运行,单独使用DI并不能帮助我们改变应用的配置。假设我们希望深入了解正在运行的应用并要在运行时改变应用的配置,此时,就可以使用java管理扩展(Java Manage-ment Extensions JMX)。

JMX这项技术能够让我们管理、监视和配置应用。

使用JMX管理应用的核心组件是托管beanmanaged bean,MBean)。所谓的MBean就是暴露特定方法到JavaBean,这些方法定义了管理接口。JMX规范定义了如下4种类型的MBean

标准MBean:标准MBean的管理接口是通过在固定的接口上执行反射确定的,bean类会实现这个接口;

动态MBean:动态MBean的管理接口是在运行时通过调用DynamicMBean接口的方法来确定的。因为管理接口不是通过静态接口定义的,因此可以在运行时改变;

开放MBean:开放MBean是一种特殊的动态MBean,其属性和方法只限定于原始类型、原始类型的包装类以及可以分解为原始类型或原始类型包装类的任意类型;

模型MBean:模型MBean也是一种特殊的动态MBean,用于充当管理接口与受管资源的中介。模型Bean并不像它们所声明的那样来编写。它们通常通过工厂生成,工厂会使用元信息来组装管理接口

SpringJMX模块可以让我们将Spring bean导出为模型MBean,这样我们就可以查看应用程序的内部情况并且能够更改配置--甚至在应用的运行期。

Spring bean导出为MBean

SpringMBeanExporter是将Spring Bean转变为MBean的关键。MBeanExporter可以把一个或多个Spring bean导出为MBean服务器(MBean server)内的模型MBeanMBean服务器是MBean生存的容器。对MBean的访问,也是通过MBean服务器来实现的。

下面的@Bean方法在Spring中声明了一个MBeanExporter,他会将spittleController bean导出为一个模型MBean

@Bean

public MBeanExporter mBeanExporter(SpittleController spittleController) {

MBeanExporter exporter = new MBeanExporter();

Map<String, Object> beans = new HashMap<String, Object>();

beans.put("spitter:name=Controller", spittleController);

exporter.setBeans(beans);

return exporter;

}

配置MBeanExporter的最简单方式是为他的beans属性配置一个Map集合,该集合中的元素是我们希望暴露为

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值