public class MBeanServerFactoryBean extends java.lang.Object implements FactoryBean<javax.management.MBeanServer>, InitializingBean, DisposableBean
MBeanServerFactory API(JDK1.5 または JMX1.2 プロバイダーの一部として使用可能)を介して MBeanServer 参照を取得する FactoryBean。Bean 参照の MBeanServer を公開します。 デフォルトでは、MBeanServerFactoryBean は、すでに実行されている場合でも、常に新しい MBeanServer を作成します。MBeanServerFactoryBean が実行中の MBeanServer を最初に見つけようとするようにするには、"locateExistingServerIfPossible" プロパティの値を "true" に設定します。
setLocateExistingServerIfPossible(boolean), locateMBeanServer(java.lang.String), MBeanServer、MBeanServerFactory.findMBeanServer(java.lang.String)、MBeanServerFactory.createMBeanServer()、MBeanServerFactory.newMBeanServer(), MBeanServerConnectionFactoryBean, ConnectorServerFactoryBean| コンストラクターと説明 |
|---|
MBeanServerFactoryBean() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet()MBeanServer インスタンスを作成します。 |
protected javax.management.MBeanServer | createMBeanServer(java.lang.String defaultDomain, boolean registerWithFactory) 必要に応じて、新しい MBeanServer インスタンスを作成し、MBeanServerFactory に登録します。 |
void | destroy() 必要に応じて、 MBeanServer インスタンスの登録を解除します。 |
javax.management.MBeanServer | getObject() このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。 |
java.lang.Class<? extends javax.management.MBeanServer> | getObjectType() この FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合は null を返します。 |
boolean | isSingleton() このファクトリによって管理されるオブジェクトはシングルトンですか? つまり、 FactoryBean.getObject() は常に同じオブジェクト(キャッシュ可能な参照)を返しますか? |
protected javax.management.MBeanServer | locateMBeanServer(java.lang.String agentId) 既存の MBeanServer を見つけようとします。 |
void | setAgentId(java.lang.String agentId) 検索する MBeanServer のエージェント ID を設定します。 |
void | setDefaultDomain(java.lang.String defaultDomain)MBeanServer で使用され、MBeanServerFactory.createMBeanServer() または MBeanServerFactory.findMBeanServer() に渡されるデフォルトのドメインを設定します。 |
void | setLocateExistingServerIfPossible(boolean locateExistingServerIfPossible)MBeanServerFactoryBean が実行中の MBeanServer を作成する前に見つけようとするかどうかを設定します。 |
void | setRegisterWithFactory(boolean registerWithFactory)MBeanServer を MBeanServerFactory に登録するかどうかを設定し、MBeanServerFactory.findMBeanServer() を介して利用できるようにします。 |
protected final Log logger
public void setLocateExistingServerIfPossible(boolean locateExistingServerIfPossible)
MBeanServerFactoryBean が実行中の MBeanServer を作成する前に見つけようとするかどうかを設定します。 デフォルトは false です。
public void setAgentId(java.lang.String agentId)
MBeanServer のエージェント ID を設定します。デフォルトは none です。指定した場合、これにより、アテンダント MBeanServer の検索が自動的に試行され、(重要なことですが)MBeanServer が見つからない場合、新しい MBeanServer の作成は試行されません(解決時に MBeanServerNotFoundException がスローされます)。
空の文字列を指定すると、プラットフォーム MBeanServer が示されます。
MBeanServerFactory.findMBeanServer(String)public void setDefaultDomain(java.lang.String defaultDomain)
MBeanServer で使用され、MBeanServerFactory.createMBeanServer() または MBeanServerFactory.findMBeanServer() に渡されるデフォルトのドメインを設定します。デフォルトはなしです。
MBeanServerFactory.createMBeanServer(String), MBeanServerFactory.findMBeanServer(String)public void setRegisterWithFactory(boolean registerWithFactory)
MBeanServer を MBeanServerFactory に登録するかどうかを設定し、MBeanServerFactory.findMBeanServer() を介して利用できるようにします。MBeanServerFactory.createMBeanServer(), MBeanServerFactory.findMBeanServer(java.lang.String)public void afterPropertiesSet()
throws MBeanServerNotFoundExceptionMBeanServer インスタンスを作成します。InitializingBean 内の afterPropertiesSet MBeanServerNotFoundExceptionprotected javax.management.MBeanServer locateMBeanServer(@Nullable java.lang.String agentId) throws MBeanServerNotFoundException
MBeanServer を見つけようとします。locateExistingServerIfPossible が true に設定されている場合に呼び出されます。 デフォルトの実装では、標準のルックアップを使用して MBeanServer を見つけようとします。サブクラスをオーバーライドして、ロケーションロジックを追加できます。
agentId - 取得する MBeanServer のエージェント識別子。このパラメーターが null の場合、登録されているすべての MBeanServer が考慮されます。MBeanServer が見つかった場合 MBeanServerNotFoundException - MBeanServer が見つからなかった場合 setLocateExistingServerIfPossible(boolean), JmxUtils.locateMBeanServer(String), MBeanServerFactory.findMBeanServer(String)protected javax.management.MBeanServer createMBeanServer(@Nullable java.lang.String defaultDomain, boolean registerWithFactory)
MBeanServer インスタンスを作成し、MBeanServerFactory に登録します。defaultDomain - デフォルトのドメイン、または存在しない場合は null registerWithFactory - MBeanServer を MBeanServerFactory に登録するかどうか MBeanServerFactory.createMBeanServer(), MBeanServerFactory.newMBeanServer()@Nullable public javax.management.MBeanServer getObject()
FactoryBeanBeanFactory と同様に、これにより、シングルトンとプロトタイプの両方のデザインパターンをサポートできます。
この FactoryBean が呼び出し時にまだ完全に初期化されていない場合(たとえば、循環参照に関係しているため)、対応する FactoryBeanNotInitializedException をスローします。
Spring 2.0 以降、FactoryBeans は null オブジェクトを返すことができます。ファクトリはこれを通常の値として使用します。この場合、FactoryBeanNotInitializedException はスローされません。FactoryBean の実装では、必要に応じて FactoryBeanNotInitializedException 自体をすぐにスローすることをお勧めします。
FactoryBean<javax.management.MBeanServer> 内の getObject null にすることができます)FactoryBeanNotInitializedExceptionpublic java.lang.Class<? extends javax.management.MBeanServer> getObjectType()
FactoryBeannull を返します。これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。
シングルトンオブジェクトを作成している実装の場合、このメソッドはシングルトンの作成を可能な限り回避しようとします。むしろ、事前に型を推定する必要があります。プロトタイプの場合、ここで意味のある型を返すこともお勧めします。
このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。
注意 : オートワイヤーは、ここで null を返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。
FactoryBean<javax.management.MBeanServer> 内の getObjectType null ListableBeanFactory.getBeansOfType(java.lang.Class<T>)public boolean isSingleton()
FactoryBeanFactoryBean.getObject() は常に同じオブジェクト(キャッシュ可能な参照)を返しますか? 注意 : FactoryBean がシングルトンオブジェクトを保持することを示す場合、getObject() から返されたオブジェクトは所有 BeanFactory によってキャッシュされる可能性があります。FactoryBean が常に同じ参照を公開しない限り、true を返さないでください。
FactoryBean 自体のシングルトンステータスは、通常、所有する BeanFactory によって提供されます。通常、そこではシングルトンとして定義する必要があります。
注意 : false を返すこのメソッドは、返されるオブジェクトが独立したインスタンスであることを必ずしも示しません。拡張 SmartFactoryBean インターフェースの実装は、SmartFactoryBean.isPrototype() メソッドを通じて独立したインスタンスを明示的に示す場合があります。この拡張インターフェースを実装しないプレーンな FactoryBean 実装は、isSingleton() 実装が false を返す場合、常に独立したインスタンスを返すと単純に想定されます。
FactoryBean は通常シングルトンインスタンスを管理するため、デフォルトの実装では true が返されます。
FactoryBean<javax.management.MBeanServer> 内の isSingleton FactoryBean.getObject(), SmartFactoryBean.isPrototype()public void destroy()
MBeanServer インスタンスの登録を解除します。DisposableBean 内の destroy