JMX(英語:Java Management Extensions,即Java管理擴展)是Java平台上為應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平台、系統體系結構網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用。

託管Bean 編輯

託管Bean(英語:Managed BeanMBean)是一種通過依賴注入創建的JavaBean。託管Bean主要用在Java管理擴展技術中。在Java EE 6的規範中,對託管Bean做了更具體的規定。

MBean代表了運行在Java虛擬機上的資源,例如應用程序或Java EE服務(事務監控、JDBC驅動程序等)。其可以用於收集如性能、資源使用率、問題信息等關鍵的統計信息(通過拉取英語Pull technology),獲取或設置應用程序的配置或屬性(通過推送拉取英語Pull technology),以及對故障或狀態變化等的通知事件(通過推送)。

Java EE 6規定,託管Bean是一種Bean類。如果一個Java的外部類被其他Java EE規範(例如JavaServer Faces規範)定義為託管Bean,或者它滿足下述所有條件,那麼這個類就是一個託管Bean:

  1. 它不是一個非靜態內部類。
  2. 它是一個具體類,或者是被@Decorator註解
  3. 它沒有被EJB組件定義註解註解,或在ejb-jar.xml中被聲明為EJB 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,它具體化英語Reification (computer science)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>

參見 編輯

參考文獻 編輯

  1. ^ Java Management Extensions (JMX) - Best Practices. [2014-08-23]. (原始內容存檔於2019-05-02). 
  2. ^ MLet (Java 2 Platform SE 5.0). Sun Microsystems. [2008-06-22]. (原始內容存檔於2010-02-10). 

外部連結 編輯