クラス MBeanExporter
- 実装されたすべてのインターフェース:
Aware
、BeanClassLoaderAware
、BeanFactoryAware
、DisposableBean
、InitializingBean
、SmartInitializingSingleton
、MBeanExportOperations
- 既知の直属サブクラス
AnnotationMBeanExporter
MBeanServer
SE に公開できる 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 DynamicMBeanSE
adaptMBeanIfPossible
(ObjectSE bean) 可能であれば、指定された Bean インスタンスに適合した MBean を構築します。void
addExcludedBean
(StringSE excludedBean) 自動検出から除外する Bean の名前を追加します。void
void
通常のシングルトンインスタンス化フェーズの後で、Bean 登録を自動的に開始します。protected ModelMBeanSE
createAndConfigureMBean
(ObjectSE managedResource, StringSE beanKey) 提供された管理対象リソースに適切な管理インターフェースで構成された MBean を作成します。protected ModelMBeanSE
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
指定された 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
定義された Bean をMBeanServer
SE に登録します。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) 使用すべきではありません。6.1 以降、"autodetect" flag
を優先void
setAutodetectModeName
(StringSE constantName) 使用すべきではありません。6.1 以降、"autodetect" flag
を優先void
setBeanClassLoader
(ClassLoaderSE classLoader) Beanclass loader
SE を Bean インスタンスに提供するコールバック。void
setBeanFactory
(BeanFactory beanFactory) void
JMXMBeanServer
に登録する Bean のMap
を提供します。void
setEnsureUniqueRuntimeObjectNames
(boolean ensureUniqueRuntimeObjectNames) 実行時に登録された MBeans (registerManagedResource(java.lang.Object)
) 用に設定されたObjectNamingStrategy
によって生成されたObjectNames
SE が変更されることを Spring が保証するかどうかを示します。これにより、管理対象Class
のすべてのインスタンスの一意性が保証されます。void
setExcludedBeans
(StringSE... excludedBeans) 自動検出から除外する必要がある Bean の名前のリストを設定します。void
setExposeManagedResourceClassLoader
(boolean exposeManagedResourceClassLoader) MBean での呼び出しを許可する前に、管理対象リソースをthread context ClassLoader
で公開する必要があるかどうかを示します。void
setListeners
(MBeanExporterListener... listeners) MBean の登録および登録解除イベントを通知するMBeanExporterListener
を設定します。void
setNamingStrategy
(ObjectNamingStrategy namingStrategy) このエクスポーターで使用するObjectNamingStrategy
インターフェースの実装を設定します。void
setNotificationListenerMappings
(MapSE<?, ? extends NotificationListenerSE> listeners) NotificationListeners
SE をMBeanServer
SE に登録するように設定します。void
setNotificationListeners
(NotificationListenerBean... notificationListeners) void
unregisterManagedResource
(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
によって生成されたObjectNames
SE が変更されることを Spring が保証するかどうかを示します。これにより、管理対象Class
のすべてのインスタンスの一意性が保証されます。デフォルト値は
true
です。setExposeManagedResourceClassLoader
public void setExposeManagedResourceClassLoader(boolean exposeManagedResourceClassLoader) MBean での呼び出しを許可する前に、管理対象リソースをthread context ClassLoader
で公開する必要があるかどうかを示します。デフォルト値は
true
で、スレッドコンテキスト ClassLoader 管理を実行するSpringModelMBean
を公開します。このフラグをオフに切り替えて、標準の JMXRequiredModelMBean
SE を公開します。setExcludedBeans
自動検出から除外する必要がある Bean の名前のリストを設定します。addExcludedBean
自動検出から除外する Bean の名前を追加します。setListeners
MBean の登録および登録解除イベントを通知するMBeanExporterListener
を設定します。setNotificationListeners
setNotificationListenerMappings
NotificationListeners
SE をMBeanServer
SE に登録するように設定します。Map
の各エントリのキーは、ObjectName
SE のString
SE 表現、またはリスナーを登録する必要がある MBean の Bean 名です。キーにアスタリスク(*
)を指定すると、起動時にこのクラスによって登録されたすべての MBean にリスナーが関連付けられます。各エントリの値は、登録する
NotificationListener
SE です。NotificationFilters
SE およびハンドバックオブジェクトの登録などのより高度なオプションについては、setNotificationListeners(NotificationListenerBean[])
を参照してください。setBeanClassLoader
インターフェースからコピーされた説明:BeanClassLoaderAware
Beanclass loader
SE を Bean インスタンスに提供するコールバック。通常の Bean プロパティの設定後、ただし
InitializingBean's
InitializingBean.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 はそのリソースの管理インターフェースを生成します。生成される正確なインターフェースは、実装とその構成によって異なります。この呼び出しは、管理対象リソースのObjectName
SE も生成し、これを呼び出し元に返します。- 次で指定:
- インターフェース
MBeanExportOperations
のregisterManagedResource
- パラメーター:
managedResource
- JMX を介して公開するリソース- 戻り値:
- リソースが公開された
ObjectName
SE - 例外:
MBeanExportException
- Spring がObjectName
SE を生成できない、または MBean を登録できない場合
registerManagedResource
public void registerManagedResource(ObjectSE managedResource, ObjectNameSE objectName) throws MBeanExportException インターフェースからコピーされた説明:MBeanExportOperations
提供されたリソースを JMX に登録します。リソースがまだ有効な MBean でない場合、Spring はそのリソースの管理インターフェースを生成します。生成される正確なインターフェースは、実装とその構成によって異なります。- 次で指定:
- インターフェース
MBeanExportOperations
のregisterManagedResource
- パラメーター:
managedResource
- JMX を介して公開するリソースobjectName
- リソースを公開するObjectName
SE- 例外:
MBeanExportException
- Spring が MBean を登録できない場合
unregisterManagedResource
インターフェースからコピーされた説明:MBeanExportOperations
基になる MBeanServer レジストリから指定された MBean を削除します。- 次で指定:
- インターフェース
MBeanExportOperations
のunregisterManagedResource
- パラメーター:
objectName
- 削除するリソースのObjectName
SE
registerBeans
protected void registerBeans()定義された Bean をMBeanServer
SE に登録します。各 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<?>)
に委譲され、DynamicMBean
SE クラスと、対応する "* 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
を優先