クラス MBeanServerFactoryBean
- 実装されているすべてのインターフェース:
DisposableBean、FactoryBean<MBeanServerSE>、InitializingBean
MBeanServerFactorySE API を介して MBeanServerSE 参照を取得する FactoryBean。Bean 参照の MBeanServer を公開します。
デフォルトでは、MBeanServerFactoryBean は、すでに実行されている場合でも、常に新しい MBeanServer を作成します。MBeanServerFactoryBean が実行中の MBeanServer を最初に見つけようとするようにするには、"locateExistingServerIfPossible" プロパティの値を "true" に設定します。
- 導入:
- 1.2
- 作成者:
- Rob Harrop, Juergen Hoeller
- 関連事項:
フィールドのサマリー
フィールドインターフェース org.springframework.beans.factory.FactoryBean から継承されたフィールド
OBJECT_TYPE_ATTRIBUTEコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidMBeanServerインスタンスを作成します。protected MBeanServerSEcreateMBeanServer(StringSE defaultDomain, boolean registerWithFactory) 必要に応じて、新しいMBeanServerインスタンスを作成し、MBeanServerFactoryに登録します。voiddestroy()必要に応じて、MBeanServerインスタンスの登録を解除します。このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。ClassSE<? extends MBeanServerSE>この FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合はnullを返します。booleanこのファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject()は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?protected MBeanServerSElocateMBeanServer(StringSE agentId) 既存のMBeanServerを見つけようとします。voidsetAgentId(StringSE agentId) 検索するMBeanServerのエージェント ID を設定します。voidsetDefaultDomain(StringSE defaultDomain) MBeanServerで使用され、MBeanServerFactory.createMBeanServer()またはMBeanServerFactory.findMBeanServer()に渡されるデフォルトのドメインを設定します。voidsetLocateExistingServerIfPossible(boolean locateExistingServerIfPossible) MBeanServerFactoryBeanが、実行中のMBeanServerを作成する前に検索を試みるかどうかを設定します。voidsetRegisterWithFactory(boolean registerWithFactory) MBeanServerをMBeanServerFactoryに登録するかどうかを設定し、MBeanServerFactory.findMBeanServer()を介して利用できるようにします。
フィールドの詳細
logger
コンストラクターの詳細
MBeanServerFactoryBean
public MBeanServerFactoryBean()
メソッドの詳細
setLocateExistingServerIfPossible
public void setLocateExistingServerIfPossible(boolean locateExistingServerIfPossible) MBeanServerFactoryBeanが、実行中のMBeanServerを作成する前に検索を試みるかどうかを設定します。デフォルトは
falseです。setAgentId
検索するMBeanServerのエージェント ID を設定します。デフォルトは none です。指定した場合、これにより、アテンダント MBeanServer の検索が自動的に試行され、(重要なことですが)MBeanServer が見つからない場合、新しい MBeanServer の作成は試行されません(解決時に MBeanServerNotFoundException がスローされます)。
空の文字列を指定すると、プラットフォーム MBeanServer が示されます。
setDefaultDomain
MBeanServerで使用され、MBeanServerFactory.createMBeanServer()またはMBeanServerFactory.findMBeanServer()に渡されるデフォルトのドメインを設定します。デフォルトはなしです。
setRegisterWithFactory
public void setRegisterWithFactory(boolean registerWithFactory) MBeanServerをMBeanServerFactoryに登録するかどうかを設定し、MBeanServerFactory.findMBeanServer()を介して利用できるようにします。デフォルトは
trueです。afterPropertiesSet
MBeanServerインスタンスを作成します。- 次で指定:
- インターフェース
InitializingBeanのafterPropertiesSet - 例外:
MBeanServerNotFoundException
locateMBeanServer
protected MBeanServerSE locateMBeanServer(@Nullable StringSE agentId) throws MBeanServerNotFoundException 既存のMBeanServerを見つけようとします。locateExistingServerIfPossibleがtrueに設定されている場合に呼び出されます。デフォルトの実装では、標準のルックアップを使用して
MBeanServerを見つけようとします。サブクラスをオーバーライドして、ロケーションロジックを追加できます。- パラメーター:
agentId- 取得する MBeanServer のエージェント識別子。このパラメーターがnullの場合、登録されているすべての MBeanServer が考慮されます。- 戻り値:
MBeanServerが見つかった場合- 例外:
MBeanServerNotFoundException-MBeanServerが見つからなかった場合- 関連事項:
createMBeanServer
protected MBeanServerSE createMBeanServer(@Nullable StringSE defaultDomain, boolean registerWithFactory) 必要に応じて、新しいMBeanServerインスタンスを作成し、MBeanServerFactoryに登録します。- パラメーター:
defaultDomain- デフォルトのドメイン、または存在しない場合はnullregisterWithFactory-MBeanServerをMBeanServerFactoryに登録するかどうか- 関連事項:
getObject
インターフェースからコピーされた説明:FactoryBeanこのファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。BeanFactoryと同様に、これにより、シングルトンとプロトタイプの両方の設計パターンをサポートできます。この FactoryBean が呼び出し時にまだ完全に初期化されていない場合(たとえば、循環参照に関係しているため)、対応する
FactoryBeanNotInitializedExceptionをスローします。FactoryBeans は
nullオブジェクトを返すことができます。Bean ファクトリはこれを通常の値と見なし、この場合はFactoryBeanNotInitializedExceptionをスローしません。ただし、FactoryBean 実装では、必要に応じてFactoryBeanNotInitializedException自体をスローすることが推奨されます。- 次で指定:
- インターフェース
FactoryBean<MBeanServerSE>のgetObject - 戻り値:
- Bean のインスタンス (
nullにすることができます) - 関連事項:
getObjectType
インターフェースからコピーされた説明:FactoryBeanこの FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合はnullを返します。これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。
シングルトンオブジェクトを作成する実装の場合、このメソッドはシングルトンの作成を可能な限り回避し、事前に型を推定する必要があります。プロトタイプの場合は、ここで意味のある型を返すことも推奨されます。
このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。
注意 : オートワイヤーは、ここで
nullを返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。- 次で指定:
- インターフェース
FactoryBean<MBeanServerSE>のgetObjectType - 戻り値:
- この FactoryBean が作成するオブジェクトの型、または呼び出し時に不明な場合は
null - 関連事項:
isSingleton
public boolean isSingleton()インターフェースからコピーされた説明:FactoryBeanこのファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject()は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?注意 : FactoryBean がシングルトンオブジェクトを保持していることを示している場合、
getObject()から返されたオブジェクトは、所有する BeanFactory によってキャッシュされる可能性があります。FactoryBean が常に同じ参照を公開しない限り、trueを返さないでください。FactoryBean 自体のシングルトンステータスは、通常、所有する BeanFactory によって提供されます。通常、そこではシングルトンとして定義する必要があります。
注意 :
falseを返すこのメソッドは、返されるオブジェクトが独立したインスタンスであることを必ずしも示しません。拡張SmartFactoryBeanインターフェースの実装は、SmartFactoryBean.isPrototype()メソッドを通じて独立したインスタンスを明示的に示す場合があります。この拡張インターフェースを実装しないプレーンなFactoryBean実装は、isSingleton()実装がfalseを返す場合、常に独立したインスタンスを返すと単純に想定されます。FactoryBeanは通常シングルトンインスタンスを管理するため、デフォルトの実装ではtrueが返されます。- 次で指定:
- インターフェース
FactoryBean<MBeanServerSE>のisSingleton - 戻り値:
- 公開されたオブジェクトがシングルトンかどうか
- 関連事項:
destroy
public void destroy()必要に応じて、MBeanServerインスタンスの登録を解除します。- 次で指定:
- インターフェース
DisposableBeanのdestroy