JMX
JMX(英語:Java Management Extensions,即Java管理扩展)是Java平台上为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
托管Bean
托管Bean(英語:Managed Bean,MBean)是一种通过依赖注入创建的JavaBean。托管Bean主要用在Java管理扩展技术中。在Java EE 6的规范中,对托管Bean做了更具体的规定。
MBean代表了运行在Java虚拟机上的资源,例如应用程序或Java EE服务(事务监控、JDBC驱动程序等)。其可以用于收集如性能、资源使用率、问题信息等关键的统计信息(通过拉取),获取或设置应用程序的配置或属性(通过推送或拉取),以及对故障或状态变化等的通知事件(通过推送)。
Java EE 6规定,托管Bean是一种Bean类。如果一个Java的外部类被其他Java EE规范(例如JavaServer Faces规范)定义为托管Bean,或者它满足下述所有条件,那么这个类就是一个托管Bean:
定义托管Bean时无需特殊的声明(如注解等)。
一个实现了javax.management.NotificationEmitter
的MBean,其内部的变化(针对属性)可以通知MBeanServer。对MBean的变化感兴趣的应用程序可以注册一个到MBeanServer的监听器(javax.management.NotificationListener
)。注意,JMX并不保证所有通知都会被监听器接收。[1]
类型
有两种基本类型的MBean:
- 标准MBean(Standard MBeans):实现了业务接口,其包含属性的getter和setter和操作(即方法)。
- 动态MBean(Dynamic MBeans):实现javax.management.DynamicMBean接口,其提供了列出属性和操作,以及获取和设置属性值的方式。
附加的类型有开放MBean(Open MBeans)、模型MBean(Model MBeans)和监视器MBean(Monitor MBeans)。 开放MBean是限定为基本数据类型的动态MBean,因而可移植性较好。 模型MBean是可以在运行期间配置的动态MBean。一般的MBean类也提供了用于在程序运行期间动态地配置资源的功能。
MXBean(Platform MBean,平台MBean)是一种特殊类型的MBean,它具体化了Java虚拟机子系统,例如垃圾回收、即时编译、内存池、多线程等。
MLet(Management applet,管理小程序)是一个实用程序MBean,在MBeanServer用来从XML描述中加载、实例化和注册MBean。这种XML描述符的格式是:[2]
<MLET CODE = ''class'' | OBJECT = ''serfile'' ARCHIVE = ''archiveList'' [CODEBASE = ''codebaseURL''] [NAME = ''objectName''] [VERSION = ''version''] > [arglist] </MLET>
参见
参考文献
- ^ Java Management Extensions (JMX) - Best Practices. [2014-08-23]. (原始内容存档于2019-05-02).
- ^ MLet (Java 2 Platform SE 5.0). Sun Microsystems. [2008-06-22]. (原始内容存档于2010-02-10).