public class MBeanExporter extends MBeanRegistrationSupport implements MBeanExportOperations, BeanClassLoaderAware, BeanFactoryAware, InitializingBean, SmartInitializingSingleton, DisposableBean
MBeanServerSE に公開できる JMX エクスポーター。Bean クラスで JMX 固有の情報を定義する必要はありません。Bean が JMX 管理インターフェースの 1 つを実装している場合、MBeanExporter は、自動検出プロセスを介して MBean をサーバーに登録するだけです。
Bean が JMX 管理インターフェースの 1 つを実装しない場合、MBeanExporter は提供された MBeanInfoAssembler を使用して管理情報を作成します。
MBeanExporterListeners のリストは listeners プロパティを介して登録でき、アプリケーションコードに MBean の登録イベントと登録解除イベントを通知できます。
このエクスポーターは、MBean および MXBean と互換性があります。
setBeans(java.util.Map<java.lang.String, java.lang.Object>), setAutodetect(boolean), setAssembler(org.springframework.jmx.export.assembler.MBeanInfoAssembler), setListeners(org.springframework.jmx.export.MBeanExporterListener...), MBeanInfoAssembler, MBeanExporterListener| 修飾子と型 | フィールドと説明 |
|---|---|
static int | AUTODETECT_ALL すべての自動検出メカニズムを使用する必要があることを示す自動検出モード。 |
static int | AUTODETECT_ASSEMBLERMBeanInfoAssembler だけが Bean を自動検出できることを示す自動検出モード。 |
static int | AUTODETECT_MBEAN 有効な MBean のみを自動検出する必要があることを示す自動検出モード。 |
static int | AUTODETECT_NONE 自動検出を使用しないことを示す自動検出モード。 |
logger, server| コンストラクターと説明 |
|---|
MBeanExporter() |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected DynamicMBeanSE | adaptMBeanIfPossible(ObjectSE bean) 可能であれば、指定された Bean インスタンスに適合した MBean を構築します。 |
void | addExcludedBean(StringSE excludedBean) 自動検出から除外する Bean の名前を追加します。 |
void | afterPropertiesSet() 指定されたすべての Bean プロパティを設定した(そして BeanFactoryAware と ApplicationContextAware を満たした)後に BeanFactory によって呼び出されます。 |
void | afterSingletonsInstantiated() 通常のシングルトンインスタンス化フェーズの後で、Bean 登録を自動的に開始します。 |
protected ModelMBeanSE | createAndConfigureMBean(ObjectSE managedResource, StringSE beanKey) 提供された管理対象リソースに適切な管理インターフェースで構成された MBean を作成します。 |
protected ModelMBeanSE | createModelMBean()ModelMBean を実装するクラスのインスタンスを作成します。 |
void | destroy() 含まれている ApplicationContext が破棄されたときに、このエクスポートが JMX を介して公開したすべての Bean の登録を解除します。 |
protected ObjectNameSE | getObjectName(ObjectSE bean, StringSE beanKey)Bean の ObjectName を取得します。 |
protected boolean | isBeanDefinitionLazyInit(ListableBeanFactory beanFactory, StringSE beanName) 指定された Bean 定義を lazy-init と見なすべきかどうかを返します。 |
protected boolean | isMBean(ClassSE<?> beanClass) 指定された Bean クラスがそのまま MBean として適格かどうかを判断します。 |
protected void | onRegister(ObjectNameSE objectName)MBean が登録されるときに呼び出されます。 |
protected void | onUnregister(ObjectNameSE objectName)MBean が登録解除されると呼び出されます。 |
protected ObjectNameSE | registerBeanNameOrInstance(ObjectSE mapValue, StringSE beanKey) 個々の Bean を MBeanServer に登録します。 |
protected void | registerBeans() 定義された Bean を MBeanServerSE に登録します。 |
ObjectNameSE | registerManagedResource(ObjectSE managedResource) 提供されたリソースを JMX に登録します。 |
void | registerManagedResource(ObjectSE managedResource, ObjectNameSE objectName) 提供されたリソースを JMX に登録します。 |
void | setAllowEagerInit(boolean allowEagerInit)Spring アプリケーションコンテキストで MBean を自動検出するときに、候補 Bean の積極的な初期化を許可するかどうかを指定します。 |
void | setAssembler(MBeanInfoAssembler assembler) このエクスポーターで使用する MBeanInfoAssembler インターフェースの実装を設定します。 |
void | setAutodetect(boolean autodetect) このエクスポーターが実行される Bean ファクトリで MBean を自動検出するかどうかを設定します。 |
void | setAutodetectMode(int autodetectMode) 使用する自動検出モードを設定します。 |
void | setAutodetectModeName(StringSE constantName) 名前で使用する自動検出モードを設定します。 |
void | setBeanClassLoader(ClassLoaderSE classLoader)Bean class loaderSE を Bean インスタンスに提供するコールバック。 |
void | setBeanFactory(BeanFactory beanFactory) |
void | setBeans(MapSE<StringSE, ObjectSE> beans)JMX MBeanServer に登録する Bean の Map を提供します。 |
void | setEnsureUniqueRuntimeObjectNames(boolean ensureUniqueRuntimeObjectNames) 実行時に登録された MBeans ( registerManagedResource(java.lang.Object)) 用に設定された ObjectNamingStrategy によって生成された ObjectNamesSE が変更されることを Spring が保証するかどうかを示します。これにより、管理対象 Class のすべてのインスタンスの一意性が保証されます。 |
void | setExcludedBeans(StringSE... excludedBeans) 自動検出から除外する Bean の名前のリストを設定します。 |
void | setExposeManagedResourceClassLoader(boolean exposeManagedResourceClassLoader)MBean の呼び出しを許可する前に、管理対象リソースを thread context ClassLoaderSE で公開するかどうかを示します。 |
void | setListeners(MBeanExporterListener... listeners)MBean の登録および登録解除イベントを通知する MBeanExporterListener を設定します。 |
void | setNamingStrategy(ObjectNamingStrategy namingStrategy) このエクスポーターで使用する ObjectNamingStrategy インターフェースの実装を設定します。 |
void | setNotificationListenerMappings(MapSE<?,? extends NotificationListenerSE> listeners)NotificationListenersSE を MBeanServerSE に登録するように設定します。 |
void | setNotificationListeners(NotificationListenerBean... notificationListeners) |
void | unregisterManagedResource(ObjectNameSE objectName) 基になる MBeanServer レジストリから指定された MBean を削除します。 |
doRegister, doUnregister, getRegisteredObjectNames, getServer, onRegister, setRegistrationPolicy, setServer, unregisterBeanscloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic static final int AUTODETECT_NONE
public static final int AUTODETECT_MBEAN
public static final int AUTODETECT_ASSEMBLER
MBeanInfoAssembler だけが Bean を自動検出できることを示す自動検出モード。public static final int AUTODETECT_ALL
public void setBeans(MapSE<StringSE,ObjectSE> beans)
MBeanServer に登録する Bean の Map を提供します。 文字列キーは、JMX オブジェクト名を作成するための基礎です。デフォルトでは、JMX ObjectName は指定されたキーから直接作成されます。これは、カスタム NamingStrategy を指定することでカスタマイズできます。
Bean インスタンスと Bean 名の両方を値として使用できます。Bean インスタンスは通常、Bean 参照を通じてリンクされます。Bean の名前は、lazy-init マーカー(つまり、そのような Bean の初期化をトリガーしない)に従って、現在のファクトリで Bean として解決されます。
beans - JMX 名をキーとして、Bean インスタンスまたは Bean 名を値としてマップ setNamingStrategy(org.springframework.jmx.export.naming.ObjectNamingStrategy), KeyNamingStrategy, ObjectName.ObjectName(String)SEpublic void setAutodetect(boolean autodetect)
AutodetectCapableMBeanInfoAssembler も要求します。 この機能はデフォルトでオフになっています。自動検出を有効にするには、ここで true を明示的に指定します。
public void setAutodetectMode(int autodetectMode)
IllegalArgumentExceptionSE - 指定された値が AUTODETECT_ 定数のいずれでもない場合 setAutodetectModeName(String), AUTODETECT_ALL, AUTODETECT_ASSEMBLER, AUTODETECT_MBEAN, AUTODETECT_NONEpublic void setAutodetectModeName(StringSE constantName)
IllegalArgumentExceptionSE - 指定された値が AUTODETECT_ 定数の 1 つに解決できない場合、または null である場合 setAutodetectMode(int), AUTODETECT_ALL, AUTODETECT_ASSEMBLER, AUTODETECT_MBEAN, AUTODETECT_NONEpublic void setAllowEagerInit(boolean allowEagerInit)
デフォルトは "false" で、Bean 定義のレイジーイニットフラグを順守します。まだ初期化されていない FactoryBean で生成されたオブジェクトも含めて、lazy-init Bean も検索するには、これを "true" に切り替えます。
public void setAssembler(MBeanInfoAssembler assembler)
MBeanInfoAssembler インターフェースの実装を設定します。デフォルトは SimpleReflectiveMBeanInfoAssembler です。 渡されたアセンブラは、オプションで AutodetectCapableMBeanInfoAssembler インターフェースを実装できます。これにより、エクスポーターの MBean 自動検出プロセスに参加できます。
public void setNamingStrategy(ObjectNamingStrategy namingStrategy)
ObjectNamingStrategy インターフェースの実装を設定します。デフォルトは KeyNamingStrategy です。public void setEnsureUniqueRuntimeObjectNames(boolean ensureUniqueRuntimeObjectNames)
registerManagedResource(java.lang.Object)) 用に設定された ObjectNamingStrategy によって生成された ObjectNamesSE が変更されることを Spring が保証するかどうかを示します。これにより、管理対象 Class のすべてのインスタンスの一意性が保証されます。 デフォルト値は true です。
public void setExposeManagedResourceClassLoader(boolean exposeManagedResourceClassLoader)
thread context ClassLoaderSE で公開するかどうかを示します。 デフォルト値は true で、スレッドコンテキスト ClassLoader 管理を実行する SpringModelMBean を公開します。このフラグをオフに切り替えて、標準の JMX RequiredModelMBeanSE を公開します。
public void setExcludedBeans(StringSE... excludedBeans)
public void addExcludedBean(StringSE excludedBean)
public void setListeners(MBeanExporterListener... listeners)
MBeanExporterListener を設定します。public void setNotificationListeners(NotificationListenerBean... notificationListeners)
public void setNotificationListenerMappings(MapSE<?,? extends NotificationListenerSE> listeners)
NotificationListenersSE を MBeanServerSE に登録するように設定します。Map の各エントリのキーは、ObjectNameSE の StringSE 表現、またはリスナーを登録する必要がある MBean の Bean 名です。キーにアスタリスク(*)を指定すると、起動時にこのクラスによって登録されたすべての MBean にリスナーが関連付けられます。
各エントリの値は、登録する NotificationListenerSE です。NotificationFiltersSE およびハンドバックオブジェクトの登録などのより高度なオプションについては、setNotificationListeners(NotificationListenerBean[]) を参照してください。
public void setBeanClassLoader(ClassLoaderSE classLoader)
BeanClassLoaderAwareclass loaderSE を Bean インスタンスに提供するコールバック。 通常の Bean プロパティの設定後、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanClassLoaderAware の setBeanClassLoader classLoader - 所有クラスローダー public void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAware の setBeanFactory beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。setBeans(java.util.Map<java.lang.String, java.lang.Object>), setAutodetect(boolean)public void afterPropertiesSet()
InitializingBeanこのメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されている場合にのみ可能な初期化を実行し、設定ミスの場合に例外をスローできます。
InitializingBean の afterPropertiesSet public void afterSingletonsInstantiated()
SmartInitializingSingleton の afterSingletonsInstantiated registerBeans()public void destroy()
ApplicationContext が破棄されたときに、このエクスポートが JMX を介して公開したすべての Bean の登録を解除します。DisposableBean の destroy public ObjectNameSE registerManagedResource(ObjectSE managedResource) throws MBeanExportException
MBeanExportOperationsObjectNameSE も生成し、これを呼び出し元に返します。MBeanExportOperations の registerManagedResource managedResource - JMX を介して公開するリソース ObjectNameSEMBeanExportException - Spring が ObjectNameSE を生成できない、または MBean を登録できない場合 public void registerManagedResource(ObjectSE managedResource, ObjectNameSE objectName) throws MBeanExportException
MBeanExportOperationsMBeanExportOperations の registerManagedResource managedResource - JMX を介して公開するリソース objectName - リソースを公開する ObjectNameSEMBeanExportException - Spring が MBean を登録できない場合 public void unregisterManagedResource(ObjectNameSE objectName)
MBeanExportOperationsMBeanExportOperations の unregisterManagedResource objectName - 削除するリソースの ObjectNameSEprotected void registerBeans()
MBeanServerSE に登録します。 各 Bean は、ModelMBean を介して MBeanServer に公開されます。使用される ModelMBean インターフェースの実際の実装は、構成されている ModelMBeanProvider インターフェースの実装によって異なります。デフォルトでは、すべての JMX 実装で提供される RequiredModelMBean クラスが使用されます。
各 Bean に対して生成される管理インターフェースは、使用されている MBeanInfoAssembler 実装に依存します。各 Bean に与えられる ObjectName は、使用される ObjectNamingStrategy インターフェースの実装に依存します。
protected boolean isBeanDefinitionLazyInit(ListableBeanFactory beanFactory, StringSE beanName)
beanFactory - Bean 定義を含むことになっている Bean ファクトリ beanName - チェックする Bean の名前 ConfigurableListableBeanFactory.getBeanDefinition(java.lang.String), BeanDefinition.isLazyInit()protected ObjectNameSE registerBeanNameOrInstance(ObjectSE mapValue, StringSE beanKey) throws MBeanExportException
MBeanServer に登録します。 このメソッドは、Bean を MBeanServer に公開する方法を決定する 責任があります。具体的には、提供された mapValue が遅延初期化用に構成された Bean の名前である場合、遅延ロード動作が尊重されるように、リソースへのプロキシが MBeanServer に登録されます。Bean がすでに MBean である場合は、介入することなく MBeanServer に直接登録されます。他のすべての Bean または Bean 名の場合、リソース自体は MBeanServer に直接登録されます。
mapValue - Bean マップでこの Bean に構成された値。Bean の String 名、または Bean 自体のいずれかです。beanKey - Bean マップでこの Bean に関連付けられているキー ObjectName MBeanExportException - エクスポートが失敗した場合 setBeans(java.util.Map<java.lang.String, java.lang.Object>), registerBeanInstance(java.lang.Object, java.lang.String), registerLazyInit(java.lang.String, java.lang.String)protected ObjectNameSE getObjectName(ObjectSE bean, @Nullable StringSE beanKey) throws MalformedObjectNameExceptionSE
ObjectName を取得します。Bean が SelfNaming インターフェースを実装している場合、ObjectName は SelfNaming.getObjectName() を使用して取得されます。それ以外の場合は、構成済みの ObjectNamingStrategy が使用されます。
bean - BeanFactory 内の Bean の名前 beanKey - Bean マップで Bean に関連付けられているキー ObjectName MalformedObjectNameExceptionSE - 取得した ObjectName が不正な形式である場合 protected boolean isMBean(@Nullable ClassSE<?> beanClass)
デフォルトの実装は JmxUtils.isMBean(java.lang.Class<?>) に委譲し、DynamicMBeanSE クラスと、対応する "* MBean" インターフェース(標準 MBean)または対応する "* MXBean" インターフェース(Java 6 MXBean)を持つクラスをチェックします。
beanClass - 分析する Bean クラス JmxUtils.isMBean(Class)@Nullable protected DynamicMBeanSE adaptMBeanIfPossible(ObjectSE bean) throws JMExceptionSE
デフォルトの実装では、AOP プロキシの場合、ターゲットの MBean/MXBean インターフェースの JMX 1.2 StandardMBean を構築し、インターフェースの管理操作をプロキシに委譲します。
bean - 元の Bean インスタンス null JMExceptionSEprotected ModelMBeanSE createAndConfigureMBean(ObjectSE managedResource, StringSE beanKey) throws MBeanExportException
managedResource - MBean としてエクスポートされるリソース beanKey - 管理された Bean に関連付けられたキー MBeanExportExceptioncreateModelMBean(), getMBeanInfo(Object, String)protected ModelMBeanSE createModelMBean() throws MBeanExceptionSE
ModelMBean を実装するクラスのインスタンスを作成します。 このメソッドは、Bean の登録時に使用する ModelMBean インスタンスを取得するために呼び出されます。このメソッドは、登録フェーズ中に Bean ごとに 1 回呼び出され、ModelMBean の新しいインスタンスを返す必要があります
ModelMBean を実装するクラスの新しいインスタンス MBeanExceptionSE - ModelMBean の作成が失敗した場合 protected void onRegister(ObjectNameSE objectName)
MBeanExporterListeners に登録イベントを通知します。 通知時に MBeanExporterListener が(ランタイム)例外をスローした場合、これは通知プロセスを本質的に中断し、まだ通知されていない残りのリスナーは(明らかに)MBeanExporterListener.mbeanRegistered(javax.management.ObjectName) コールバックを受信しないことに注意してください。
MBeanRegistrationSupport の onRegister objectName - 登録された MBean の ObjectName protected void onUnregister(ObjectNameSE objectName)
MBeanExporterListeners に登録解除イベントを通知します。 通知時に MBeanExporterListener が(ランタイム)例外をスローした場合、これは通知プロセスを本質的に中断し、まだ通知されていない残りのリスナーは(明らかに)MBeanExporterListener.mbeanUnregistered(javax.management.ObjectName) コールバックを受信しないことに注意してください。
MBeanRegistrationSupport の onUnregister objectName - 未登録の MBean の ObjectName