# 什么是MBean
- MBean就是一种规范的JavaBean,通过集成和实现一套标准的Bean接口,这种叫MBean,Mbean注册到MBeanServer中。之后将被MBeanServer中注册过的Adapter(比如渲染为HTML的HtmlAdapter)渲染为直观的页面将MBean的属性和方法展示给用户。
MBean -> MBeanServer -> HtmlAdapter
以上这套架构有一个专业的名词描述:JMX,全称为Java Management Extensions
- 当然用户需要访问HtmlAdapter页面还需要提供一个链接入口,通常都是提供rmi入口。
- rmi的核心是一个java.rmi.registry.Registry注册中心,需要暴露给客户端的自定义RMI服务接口会提前注册到这个Registry中,并声明好访问的链接,之后用户访问【自定义RMI服务接口】时就会链接到Registry并访问到和链接对应的【自定义RMI服务接口】。
- MBeanServer就是我们刚刚提到的【自定义RMI服务接口】,
javax.management.remote.JMXConnectorServer负责将MBeanServer与URL绑定(url类似长成这样子:service:jmx:rmi:///jndi/rmi://localhost:1099/helloworld)并注册到localhost:1099的Registry注册中心。
- MBean可以用来干嘛?就是可以有一套JDK级别的对外的服务接口。比如,你写了一个JVM允许状态辅助查询的Bean,你希望别人下载一个Jconsole就可以看到你写的杰作。那你就可以考虑用MBean规范来实现。很多垃圾收集器算法Bean就这么干的(说的就是这个类sun.management.MemoryImpl)。
结束语:挺古老的一套机制,但是关键时刻可以帮助我们更好的理解JVM的允许状况,这得感谢JAVA的动态加载机制。
————————————————
版权声明:本文为CSDN博主「liangdu_Zuker」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010833547/article/details/92806510