public class MBeanClientInterceptor extends java.lang.Object implements MethodInterceptor, BeanClassLoaderAware, InitializingBean, DisposableBean
MBeanServerConnection
で実行されている MBean に呼び出しをルーティングする MethodInterceptor
。ローカルおよびリモート MBeanServerConnection
の両方で機能します。 デフォルトでは、MBeanClientInterceptor
は MBeanServer
に接続し、起動時に MBean メタデータをキャッシュします。これは、アプリケーションの起動時に実行されていない可能性のあるリモート MBeanServer
に対して実行する場合、望ましくない可能性があります。connectOnStartup
プロパティを "false" に設定することにより、プロキシに対する最初の呼び出しまでこのプロセスを延期できます。
この機能は、通常 MBeanProxyFactoryBean
を介して使用されます。詳細については、そのクラスの javadoc を参照してください。
MBeanProxyFactoryBean
, setConnectOnStartup(boolean)
コンストラクターと説明 |
---|
MBeanClientInterceptor() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPropertiesSet() "connectOnStartup" がオンになっている場合(これはデフォルトです)、 MBeanServerConnection を準備します。 |
protected java.lang.Object | convertResultValueIfNecessary(java.lang.Object result, MethodParameter parameter) プロキシメソッドから戻るために、指定された結果オブジェクトを(属性アクセスまたは操作呼び出しから)指定されたターゲットクラスに変換します。 |
void | destroy() Bean の破棄時に、包含 BeanFactory によって呼び出されます。 |
protected java.lang.Object | doInvoke(MethodInvocation invocation) 構成された管理対象リソースに呼び出しをルーティングします。 |
java.util.Map<java.lang.String,?> | getEnvironment() 特定のエントリを追加または上書きするオプションを使用して、コネクターへの環境へのマップアクセスを設定できます。 |
protected java.lang.Class<?> | getManagementInterface() ターゲット MBean の管理インターフェース、または何も指定されていない場合は null を返します。 |
protected java.lang.Object | handleConnectFailure(MethodInvocation invocation, java.lang.Exception ex) 接続をリフレッシュし、可能であれば MBean の呼び出しを再試行します。 |
java.lang.Object | invoke(MethodInvocation invocation) 構成された管理対象リソースに呼び出しをルーティングします。 |
protected boolean | isPrepared() このクライアントインターセプターがすでに準備されているかどうか、つまり |
void | prepare() MBeanServerConnection が構成されていることを確認し、ローカル接続が提供されていない場合、ローカル接続の検出を試みます。 |
void | setAgentId(java.lang.String agentId) 検索する MBeanServer のエージェント ID を設定します。 |
void | setBeanClassLoader(java.lang.ClassLoader beanClassLoader) Bean class loader を Bean インスタンスに提供するコールバック。 |
void | setConnectOnStartup(boolean connectOnStartup) プロキシが作成時に MBeanServer に接続するか( "true" )、または最初に呼び出されたときに( "false" )を設定します。 |
void | setEnvironment(java.util.Map<java.lang.String,?> environment) JMX コネクターの環境を指定します。 |
void | setManagementInterface(java.lang.Class<?> managementInterface) ターゲット MBean の管理インターフェースを設定し、MBean 属性の Bean プロパティ setter および getter および MBean 操作の従来の Java メソッドを公開します。 |
void | setObjectName(java.lang.Object objectName) 呼び出しがルーティングされる MBean の ObjectName を ObjectName インスタンスまたは String として設定します。 |
void | setRefreshOnConnectFailure(boolean refreshOnConnectFailure) 接続失敗時に MBeanServer 接続をリフレッシュするかどうかを設定します。 |
void | setServer(javax.management.MBeanServerConnection server) すべての呼び出しがルーティングされる MBean への接続に使用される MBeanServerConnection を設定します。 |
void | setServiceUrl(java.lang.String url) リモート MBeanServer のサービス URL を設定します。 |
void | setUseStrictCasing(boolean useStrictCasing) 属性に厳密な大文字小文字を使用するかどうかを設定します。 |
protected final Log logger
public void setServer(javax.management.MBeanServerConnection server)
MBeanServerConnection
を設定します。public void setServiceUrl(java.lang.String url) throws java.net.MalformedURLException
MBeanServer
のサービス URL を設定します。java.net.MalformedURLException
public void setEnvironment(@Nullable java.util.Map<java.lang.String,?> environment)
JMXConnectorFactory.connect(javax.management.remote.JMXServiceURL, java.util.Map)
@Nullable public java.util.Map<java.lang.String,?> getEnvironment()
たとえば、"environment [myKey]" を使用して、エントリを直接指定するのに便利です。これは、子 Bean 定義のエントリを追加または上書きする場合に特に便利です。
public void setAgentId(java.lang.String agentId)
MBeanServer
のエージェント ID を設定します。 デフォルトはなしです。指定した場合、"serviceUrl"
プロパティが設定されていない限り、これによりアテンダント MBeanServer の検索が試行されます。
空の文字列を指定すると、プラットフォーム MBeanServer を示します。
public void setConnectOnStartup(boolean connectOnStartup)
MBeanServer
に接続するか( "true" )、または最初に呼び出されたときに( "false" )を設定します。デフォルトは "true" です。public void setRefreshOnConnectFailure(boolean refreshOnConnectFailure)
オンにすると、JMX サーバーのホットリスタートが可能になり、IOException が発生した場合に自動的に再接続して再試行できます。
public void setObjectName(java.lang.Object objectName) throws javax.management.MalformedObjectNameException
ObjectName
を ObjectName
インスタンスまたは String
として設定します。javax.management.MalformedObjectNameException
public void setUseStrictCasing(boolean useStrictCasing)
厳密な大文字小文字を使用する場合、getFoo()
などの getter を持つ JavaBean プロパティは、Foo
と呼ばれる属性に変換されます。厳密なケーシングを無効にすると、getFoo()
は foo
に変換されます。
public void setManagementInterface(@Nullable java.lang.Class<?> managementInterface)
@Nullable protected final java.lang.Class<?> getManagementInterface()
null
を返します。public void setBeanClassLoader(java.lang.ClassLoader beanClassLoader)
BeanClassLoaderAware
class loader
を Bean インスタンスに提供するコールバック。 通常の Bean プロパティの設定後、ただし InitializingBean's
InitializingBean.afterPropertiesSet()
メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanClassLoaderAware
の setBeanClassLoader
beanClassLoader
- 所有クラスローダー public void afterPropertiesSet()
MBeanServerConnection
を準備します。InitializingBean
の afterPropertiesSet
public void prepare()
MBeanServerConnection
が構成されていることを確認し、ローカル接続が提供されていない場合、ローカル接続の検出を試みます。protected boolean isPrepared()
@Nullable public java.lang.Object invoke(MethodInvocation invocation) throws java.lang.Throwable
MethodInterceptor
の invoke
invocation
- 再ルーティングする MethodInvocation
java.lang.Throwable
- ユーザーに伝播された呼び出しエラー doInvoke(org.aopalliance.intercept.MethodInvocation)
, handleConnectFailure(org.aopalliance.intercept.MethodInvocation, java.lang.Exception)
@Nullable protected java.lang.Object handleConnectFailure(MethodInvocation invocation, java.lang.Exception ex) throws java.lang.Throwable
接続失敗時にリフレッシュするように構成されていない場合、このメソッドは元の例外を単に再スローします。
invocation
- 失敗した呼び出し ex
- リモート呼び出しで発生した例外 java.lang.Throwable
- 失敗した場合、新しい呼び出しによって発生した例外 setRefreshOnConnectFailure(boolean)
, doInvoke(org.aopalliance.intercept.MethodInvocation)
@Nullable protected java.lang.Object doInvoke(MethodInvocation invocation) throws java.lang.Throwable
MBeanServerConnection.get/setAttribute
に、メソッド呼び出しを MBeanServerConnection.invoke
に正しくルーティングします。invocation
- 再ルーティングする MethodInvocation
java.lang.Throwable
- ユーザーに伝播された呼び出しエラー @Nullable protected java.lang.Object convertResultValueIfNecessary(@Nullable java.lang.Object result, MethodParameter parameter)
result
- MBeanServer
によって返される結果オブジェクト parameter
- 呼び出されたプロキシメソッドのメソッドパラメーター public void destroy()
DisposableBean
BeanFactory
によって呼び出されます。DisposableBean
の destroy