クラス MBeanExporter
- 実装されているすべてのインターフェース:
Aware、BeanClassLoaderAware、BeanFactoryAware、DisposableBean、InitializingBean、SmartInitializingSingleton、MBeanExportOperations
- 既知の直属サブクラス
AnnotationMBeanExporter
MBeanServerSE に公開できる JMX エクスポーター。Bean クラスで JMX 固有の情報を定義する必要はありません。Bean が JMX 管理インターフェースの 1 つを実装している場合、MBeanExporter は自動検出プロセスを通じて MBean をサーバーに簡単に登録できます。
Bean が JMX 管理インターフェースの 1 つを実装しない場合、MBeanExporter は提供された MBeanInfoAssembler を使用して管理情報を作成します。
MBeanExporterListeners のリストは listeners プロパティを介して登録でき、アプリケーションコードに MBean の登録イベントと登録解除イベントを通知できます。
このエクスポーターは、MBean および MXBean と互換性があります。
- 導入:
- 1.2
- 作成者:
- Rob Harrop, Juergen Hoeller, Rick Evans, Mark Fisher, Stephane Nicoll, Sam Brannen
- 関連事項:
フィールドのサマリー
フィールド修飾子と型フィールド説明static final int使用すべきではありません。static final int使用すべきではありません。6.1 以降、"autodetect" flagを優先static final int使用すべきではありません。6.1 以降、"autodetect" flagを優先static final int使用すべきではありません。6.1 以降、"autodetect" flagを優先クラス org.springframework.jmx.support.MBeanRegistrationSupport から継承されたフィールド
logger, serverコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected DynamicMBeanSEadaptMBeanIfPossible(ObjectSE bean) 可能であれば、指定された Bean インスタンスに適合した MBean を構築します。voidaddExcludedBean(StringSE excludedBean) 自動検出から除外する Bean の名前を追加します。voidvoid通常のシングルトンインスタンス化フェーズの後で、Bean 登録を自動的に開始します。protected ModelMBeanSEcreateAndConfigureMBean(ObjectSE managedResource, StringSE beanKey) 提供された管理対象リソースに適切な管理インターフェースで構成された MBean を作成します。protected ModelMBeanSEModelMBeanを実装するクラスのインスタンスを作成します。voiddestroy()含まれているApplicationContextが破棄されたときに、このエクスポートが JMX を介して公開したすべての Bean の登録を解除します。protected ObjectNameSEgetObjectName(ObjectSE bean, StringSE beanKey) Bean のObjectNameを取得します。protected booleanisBeanDefinitionLazyInit(ListableBeanFactory beanFactory, StringSE beanName) 指定された Bean 定義を lazy-init と見なすべきかどうかを返します。protected boolean指定された Bean クラスがそのまま MBean として適格かどうかを判断します。protected voidonRegister(ObjectNameSE objectName) MBean が登録されるときに呼び出されます。protected voidonUnregister(ObjectNameSE objectName) MBean が登録解除されると呼び出されます。protected ObjectNameSEregisterBeanNameOrInstance(ObjectSE mapValue, StringSE beanKey) 個々の Bean をMBeanServerに登録します。protected void定義された Bean をMBeanServerSE に登録します。registerManagedResource(ObjectSE managedResource) 提供されたリソースを JMX に登録します。voidregisterManagedResource(ObjectSE managedResource, ObjectNameSE objectName) 提供されたリソースを JMX に登録します。voidsetAllowEagerInit(boolean allowEagerInit) Spring アプリケーションコンテキストで MBean を自動検出するときに、候補 Bean の積極的な初期化を許可するかどうかを指定します。voidsetAssembler(MBeanInfoAssembler assembler) このエクスポーターで使用するMBeanInfoAssemblerインターフェースの実装を設定します。voidsetAutodetect(boolean autodetect) このエクスポーターが実行される Bean ファクトリで MBean を自動検出するかどうかを設定します。voidsetAutodetectMode(int autodetectMode) 使用すべきではありません。6.1 以降、"autodetect" flagを優先voidsetAutodetectModeName(StringSE constantName) 使用すべきではありません。6.1 以降、"autodetect" flagを優先voidsetBeanClassLoader(ClassLoaderSE classLoader) Beanclass loaderSE を Bean インスタンスに提供するコールバック。voidsetBeanFactory(BeanFactory beanFactory) voidJMXMBeanServerに登録する Bean のMapを提供します。voidsetEnsureUniqueRuntimeObjectNames(boolean ensureUniqueRuntimeObjectNames) 実行時に登録された MBeans (registerManagedResource(java.lang.Object)) 用に設定されたObjectNamingStrategyによって生成されたObjectNamesSE が変更されることを Spring が保証するかどうかを示します。これにより、管理対象Classのすべてのインスタンスの一意性が保証されます。voidsetExcludedBeans(StringSE... excludedBeans) 自動検出から除外する必要がある Bean の名前のリストを設定します。voidsetExposeManagedResourceClassLoader(boolean exposeManagedResourceClassLoader) MBean での呼び出しを許可する前に、管理対象リソースをthread context ClassLoaderで公開する必要があるかどうかを示します。voidsetListeners(MBeanExporterListener... listeners) MBean の登録および登録解除イベントを通知するMBeanExporterListenerを設定します。voidsetNamingStrategy(ObjectNamingStrategy namingStrategy) このエクスポーターで使用するObjectNamingStrategyインターフェースの実装を設定します。voidsetNotificationListenerMappings(MapSE<?, ? extends NotificationListenerSE> listeners) NotificationListenersSE をMBeanServerSE に登録するように設定します。voidsetNotificationListeners(NotificationListenerBean... notificationListeners) voidunregisterManagedResource(ObjectNameSE objectName) 基になる MBeanServer レジストリから指定された MBean を削除します。クラス org.springframework.jmx.support.MBeanRegistrationSupport から継承されたメソッド
doRegister, doUnregister, getRegisteredObjectNames, getServer, onRegister, setRegistrationPolicy, setServer, unregisterBeans
フィールドの詳細
AUTODETECT_NONE
使用すべきではありません。6.1 以降、"autodetect" flagを優先自動検出を使用しないことを示す自動検出モード。- 関連事項:
AUTODETECT_MBEAN
使用すべきではありません。6.1 以降、"autodetect" flagを優先有効な MBean のみを自動検出する必要があることを示す自動検出モード。- 関連事項:
AUTODETECT_ASSEMBLER
使用すべきではありません。6.1 以降、"autodetect" flagを優先MBeanInfoAssemblerのみが Bean を自動検出できることを示す自動検出モード。- 関連事項:
AUTODETECT_ALL
使用すべきではありません。6.1 以降、"autodetect" flagを優先すべての自動検出メカニズムを使用する必要があることを示す自動検出モード。- 関連事項:
コンストラクターの詳細
MBeanExporter
public MBeanExporter()
メソッドの詳細
setBeans
JMXMBeanServerに登録する Bean のMapを提供します。文字列キーは、JMX オブジェクト名を作成するための基礎です。デフォルトでは、JMX
ObjectNameは指定されたキーから直接作成されます。これは、カスタムNamingStrategyを指定することでカスタマイズできます。Bean インスタンスと Bean 名の両方を値として使用できます。Bean インスタンスは通常、Bean 参照を通じてリンクされます。Bean の名前は、lazy-init マーカー(つまり、そのような Bean の初期化をトリガーしない)に従って、現在のファクトリで Bean として解決されます。
- パラメーター:
beans- JMX 名をキーとし、Bean インスタンスまたは Bean 名を値とするマップ- 関連事項:
setAutodetect
public void setAutodetect(boolean autodetect) このエクスポーターが実行される Bean ファクトリで MBean を自動検出するかどうかを設定します。使用可能な場合は、AutodetectCapableMBeanInfoAssemblerも要求します。この機能はデフォルトではオフになっています。自動検出を有効にするには、ここで
trueを明示的に指定します。setAutodetectModeName
使用すべきではありません。6.1 以降、"autodetect" flagを優先名前で使用する自動検出モードを設定します。- 例外:
IllegalArgumentExceptionSE- 指定された値がAUTODETECT_定数の 1 つに解決できない場合、またはnullである場合- 関連事項:
setAutodetectMode
使用すべきではありません。6.1 以降、"autodetect" flagを優先使用する自動検出モードを設定します。- 例外:
IllegalArgumentExceptionSE- 指定された値がAUTODETECT_定数のいずれでもない場合- 関連事項:
setAllowEagerInit
public void setAllowEagerInit(boolean allowEagerInit) Spring アプリケーションコンテキストで MBean を自動検出するときに、候補 Bean の積極的な初期化を許可するかどうかを指定します。デフォルトは "false" で、Bean 定義のレイジーイニットフラグを順守します。まだ初期化されていない FactoryBean で生成されたオブジェクトも含めて、lazy-init Bean も検索するには、これを "true" に切り替えます。
setAssembler
このエクスポーターで使用するMBeanInfoAssemblerインターフェースの実装を設定します。デフォルトはSimpleReflectiveMBeanInfoAssemblerです。渡されたアセンブラは、オプションで
AutodetectCapableMBeanInfoAssemblerインターフェースを実装できます。これにより、エクスポータの MBean 自動検出プロセスに参加できるようになります。setNamingStrategy
このエクスポーターで使用するObjectNamingStrategyインターフェースの実装を設定します。デフォルトはKeyNamingStrategyです。setEnsureUniqueRuntimeObjectNames
public void setEnsureUniqueRuntimeObjectNames(boolean ensureUniqueRuntimeObjectNames) 実行時に登録された MBeans (registerManagedResource(java.lang.Object)) 用に設定されたObjectNamingStrategyによって生成されたObjectNamesSE が変更されることを Spring が保証するかどうかを示します。これにより、管理対象Classのすべてのインスタンスの一意性が保証されます。デフォルト値は
trueです。setExposeManagedResourceClassLoader
public void setExposeManagedResourceClassLoader(boolean exposeManagedResourceClassLoader) MBean での呼び出しを許可する前に、管理対象リソースをthread context ClassLoaderで公開する必要があるかどうかを示します。デフォルト値は
trueで、スレッドコンテキスト ClassLoader 管理を実行するSpringModelMBeanを公開します。このフラグをオフに切り替えて、標準の JMXRequiredModelMBeanSE を公開します。setExcludedBeans
自動検出から除外する必要がある Bean の名前のリストを設定します。addExcludedBean
自動検出から除外する Bean の名前を追加します。setListeners
MBean の登録および登録解除イベントを通知するMBeanExporterListenerを設定します。setNotificationListeners
setNotificationListenerMappings
NotificationListenersSE をMBeanServerSE に登録するように設定します。Mapの各エントリのキーは、ObjectNameSE のStringSE 表現、またはリスナーを登録する必要がある MBean の Bean 名です。キーにアスタリスク(*)を指定すると、起動時にこのクラスによって登録されたすべての MBean にリスナーが関連付けられます。各エントリの値は、登録する
NotificationListenerSE です。NotificationFiltersSE およびハンドバックオブジェクトの登録などのより高度なオプションについては、setNotificationListeners(NotificationListenerBean[])を参照してください。setBeanClassLoader
インターフェースからコピーされた説明:BeanClassLoaderAwareBeanclass loaderSE を Bean インスタンスに提供するコールバック。通常の Bean プロパティの設定後、ただし
InitializingBean'sInitializingBean.afterPropertiesSet()メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanClassLoaderAwareのsetBeanClassLoader - パラメーター:
classLoader- 所有クラスローダー
setBeanFactory
- 次で指定:
- インターフェース
BeanFactoryAwareのsetBeanFactory - パラメーター:
beanFactory- 所有 BeanFactory(非null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。- 関連事項:
afterPropertiesSet
public void afterPropertiesSet()インターフェースからコピーされた説明:InitializingBeanすべての Bean プロパティを設定し、BeanFactoryAware、ApplicationContextAwareなどを満たした後、包含BeanFactoryによって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
- 次で指定:
- インターフェース
InitializingBeanのafterPropertiesSet
afterSingletonsInstantiated
public void afterSingletonsInstantiated()通常のシングルトンインスタンス化フェーズの後で、Bean 登録を自動的に開始します。- 次で指定:
- インターフェース
SmartInitializingSingletonのafterSingletonsInstantiated - 関連事項:
destroy
public void destroy()含まれているApplicationContextが破棄されたときに、このエクスポートが JMX を介して公開したすべての Bean の登録を解除します。- 次で指定:
- インターフェース
DisposableBeanのdestroy
registerManagedResource
インターフェースからコピーされた説明:MBeanExportOperations提供されたリソースを JMX に登録します。リソースがまだ有効な MBean でない場合、Spring はそのリソースの管理インターフェースを生成します。生成される正確なインターフェースは、実装とその構成によって異なります。この呼び出しは、管理対象リソースのObjectNameSE も生成し、これを呼び出し元に返します。- 次で指定:
- インターフェース
MBeanExportOperationsのregisterManagedResource - パラメーター:
managedResource- JMX を介して公開するリソース- 戻り値:
- リソースが公開された
ObjectNameSE - 例外:
MBeanExportException- Spring がObjectNameSE を生成できない、または MBean を登録できない場合
registerManagedResource
public void registerManagedResource(ObjectSE managedResource, ObjectNameSE objectName) throws MBeanExportException インターフェースからコピーされた説明:MBeanExportOperations提供されたリソースを JMX に登録します。リソースがまだ有効な MBean でない場合、Spring はそのリソースの管理インターフェースを生成します。生成される正確なインターフェースは、実装とその構成によって異なります。- 次で指定:
- インターフェース
MBeanExportOperationsのregisterManagedResource - パラメーター:
managedResource- JMX を介して公開するリソースobjectName- リソースを公開するObjectNameSE- 例外:
MBeanExportException- Spring が MBean を登録できない場合
unregisterManagedResource
インターフェースからコピーされた説明:MBeanExportOperations基になる MBeanServer レジストリから指定された MBean を削除します。- 次で指定:
- インターフェース
MBeanExportOperationsのunregisterManagedResource - パラメーター:
objectName- 削除するリソースのObjectNameSE
registerBeans
protected void registerBeans()定義された Bean をMBeanServerSE に登録します。各 Bean は、
ModelMBeanを介してMBeanServerに公開されます。使用されるModelMBeanインターフェースの実際の実装は、構成されているModelMBeanProviderインターフェースの実装によって異なります。デフォルトでは、すべての JMX 実装で提供されるRequiredModelMBeanクラスが使用されます。各 Bean に対して生成される管理インターフェースは、使用されている
MBeanInfoAssembler実装に依存します。各 Bean に与えられるObjectNameは、使用されるObjectNamingStrategyインターフェースの実装に依存します。isBeanDefinitionLazyInit
指定された Bean 定義を lazy-init と見なすべきかどうかを返します。- パラメーター:
beanFactory- Bean 定義を含むことになっている Bean ファクトリbeanName- チェックする Bean の名前- 関連事項:
registerBeanNameOrInstance
protected ObjectNameSE registerBeanNameOrInstance(ObjectSE mapValue, StringSE beanKey) throws MBeanExportException 個々の Bean を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)
getObjectName
protected ObjectNameSE getObjectName(ObjectSE bean, @Nullable StringSE beanKey) throws MalformedObjectNameExceptionSE Bean のObjectNameを取得します。Bean が
SelfNamingインターフェースを実装している場合、ObjectNameはSelfNaming.getObjectName()を使用して取得されます。それ以外の場合は、構成済みのObjectNamingStrategyが使用されます。- パラメーター:
bean-BeanFactory内の Bean の名前beanKey- Bean マップで Bean に関連付けられているキー- 戻り値:
- 提供された Bean の
ObjectName - 例外:
MalformedObjectNameExceptionSE- 取得したObjectNameが不正な形式である場合
isMBean
指定された Bean クラスがそのまま MBean として適格かどうかを判断します。デフォルトの実装は
JmxUtils.isMBean(java.lang.Class<?>)に委譲され、DynamicMBeanSE クラスと、対応する "* MBean" インターフェース(標準 MBean)または対応する "* MXBean" インターフェース(Java MXBeans)を持つクラスをチェックします。- パラメーター:
beanClass- 分析する Bean クラス- 戻り値:
- クラスが MBean として適格かどうか
- 関連事項:
adaptMBeanIfPossible
可能であれば、指定された Bean インスタンスに適合した MBean を構築します。デフォルトの実装では、AOP プロキシの場合、ターゲットの MBean/MXBean インターフェースの JMX 1.2 StandardMBean を構築し、インターフェースの管理操作をプロキシに委譲します。
- パラメーター:
bean- 元の Bean インスタンス- 戻り値:
- 適合した MBean、または可能でない場合は
null - 例外:
JMExceptionSE
createAndConfigureMBean
protected ModelMBeanSE createAndConfigureMBean(ObjectSE managedResource, StringSE beanKey) throws MBeanExportException 提供された管理対象リソースに適切な管理インターフェースで構成された MBean を作成します。- パラメーター:
managedResource- MBean としてエクスポートされるリソースbeanKey- 管理された Bean に関連付けられたキー- 例外:
MBeanExportException- 関連事項:
createModelMBean()getMBeanInfo(Object, String)
createModelMBean
ModelMBeanを実装するクラスのインスタンスを作成します。このメソッドは、Bean の登録時に使用する
ModelMBeanインスタンスを取得するために呼び出されます。このメソッドは、登録フェーズ中に Bean ごとに 1 回呼び出され、ModelMBeanの新しいインスタンスを返す必要があります- 戻り値:
ModelMBeanを実装するクラスの新しいインスタンス- 例外:
MBeanExceptionSE- ModelMBean の作成が失敗した場合
onRegister
MBean が登録されるときに呼び出されます。登録されたすべてのMBeanExporterListenersに登録イベントを通知します。通知時に
MBeanExporterListenerが(ランタイム)例外をスローした場合、これは通知プロセスを本質的に中断し、まだ通知されていない残りのリスナーは(明らかに)MBeanExporterListener.mbeanRegistered(javax.management.ObjectName)コールバックを受信しないことに注意してください。- オーバーライド:
- クラス
MBeanRegistrationSupportのonRegister - パラメーター:
objectName- 登録された MBean のObjectName
onUnregister
MBean が登録解除されると呼び出されます。すべての登録済みMBeanExporterListenersに登録解除イベントを通知します。通知時に
MBeanExporterListenerが(ランタイム)例外をスローした場合、これは通知プロセスを本質的に中断し、まだ通知されていない残りのリスナーは(明らかに)MBeanExporterListener.mbeanUnregistered(javax.management.ObjectName)コールバックを受信しないことに注意してください。- オーバーライド:
- クラス
MBeanRegistrationSupportのonUnregister - パラメーター:
objectName- 未登録の MBean のObjectName
"autodetect" flagを優先