类 MBeanClientInterceptor
- java.lang.Object
- org.springframework.jmx.access.MBeanClientInterceptor
- 所有已实现的接口:
Advice
,Interceptor
,MethodInterceptor
,Aware
,BeanClassLoaderAware
,DisposableBean
,InitializingBean
- 直接已知子类:
MBeanProxyFactoryBean
public class MBeanClientInterceptor extends Object implements MethodInterceptor, BeanClassLoaderAware, InitializingBean, DisposableBean
MethodInterceptor
that routes calls to an MBean running on the suppliedMBeanServerConnection
. Works for both local and remoteMBeanServerConnection
s.By default, the
MBeanClientInterceptor
will connect to theMBeanServer
and cache MBean metadata at startup. This can be undesirable when running against a remoteMBeanServer
that may not be running when the application starts. Through setting theconnectOnStartup
property to "false", you can defer this process until the first invocation against the proxy.This functionality is usually used through
MBeanProxyFactoryBean
. See the javadoc of that class for more information.- 从以下版本开始:
- 1.2
- 作者:
- Rob Harrop, Juergen Hoeller
- 另请参阅:
MBeanProxyFactoryBean
,setConnectOnStartup(boolean)
构造器概要
构造器 构造器 说明 MBeanClientInterceptor()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 void
afterPropertiesSet()
Prepares theMBeanServerConnection
if the "connectOnStartup" is turned on (which it is by default).protected Object
convertResultValueIfNecessary(Object result, MethodParameter parameter)
Convert the given result object (from attribute access or operation invocation) to the specified target class for returning from the proxy method.void
destroy()
Invoked by the containingBeanFactory
on destruction of a bean.protected Object
doInvoke(MethodInvocation invocation)
Route the invocation to the configured managed resource.Map<String,?>
getEnvironment()
Allow Map access to the environment to be set for the connector, with the option to add or override specific entries.protected Class<?>
getManagementInterface()
Return the management interface of the target MBean, ornull
if none specified.protected Object
handleConnectFailure(MethodInvocation invocation, Exception ex)
Refresh the connection and retry the MBean invocation if possible.Object
invoke(MethodInvocation invocation)
Route the invocation to the configured managed resource..protected boolean
isPrepared()
Return whether this client interceptor has already been prepared, i.e. has already looked up the server and cached all metadata.void
prepare()
Ensures that anMBeanServerConnection
is configured and attempts to detect a local connection if one is not supplied.void
setAgentId(String agentId)
Set the agent id of theMBeanServer
to locate.void
setBeanClassLoader(ClassLoader beanClassLoader)
Callback that supplies the beanclass loader
to a bean instance.void
setConnectOnStartup(boolean connectOnStartup)
Set whether or not the proxy should connect to theMBeanServer
at creation time ("true") or the first time it is invoked ("false").void
setEnvironment(Map<String,?> environment)
Specify the environment for the JMX connector.void
setManagementInterface(Class<?> managementInterface)
Set the management interface of the target MBean, exposing bean property setters and getters for MBean attributes and conventional Java methods for MBean operations.void
setObjectName(Object objectName)
Set theObjectName
of the MBean which calls are routed to, asObjectName
instance or asString
.void
setRefreshOnConnectFailure(boolean refreshOnConnectFailure)
Set whether to refresh the MBeanServer connection on connect failure.void
setServer(MBeanServerConnection server)
Set theMBeanServerConnection
used to connect to the MBean which all invocations are routed to.void
setServiceUrl(String url)
Set the service URL of the remoteMBeanServer
.void
setUseStrictCasing(boolean useStrictCasing)
Set whether to use strict casing for attributes.
构造器详细资料
MBeanClientInterceptor
public MBeanClientInterceptor()
方法详细资料
setServer
public void setServer(MBeanServerConnection server)
Set theMBeanServerConnection
used to connect to the MBean which all invocations are routed to.
setServiceUrl
public void setServiceUrl(String url) throws MalformedURLException
Set the service URL of the remoteMBeanServer
.
setEnvironment
public void setEnvironment(@Nullable Map<String,?> environment)
Specify the environment for the JMX connector.
getEnvironment
@Nullable public Map<String,?> getEnvironment()
Allow Map access to the environment to be set for the connector, with the option to add or override specific entries.Useful for specifying entries directly, for example via "environment[myKey]". This is particularly useful for adding or overriding entries in child bean definitions.
setAgentId
public void setAgentId(String agentId)
Set the agent id of theMBeanServer
to locate.Default is none. If specified, this will result in an attempt being made to locate the attendant MBeanServer, unless the
"serviceUrl"
property has been set.
setConnectOnStartup
public void setConnectOnStartup(boolean connectOnStartup)
Set whether or not the proxy should connect to theMBeanServer
at creation time ("true") or the first time it is invoked ("false"). Default is "true".
setRefreshOnConnectFailure
public void setRefreshOnConnectFailure(boolean refreshOnConnectFailure)
Set whether to refresh the MBeanServer connection on connect failure. Default is "false".Can be turned on to allow for hot restart of the JMX server, automatically reconnecting and retrying in case of an IOException.
setObjectName
public void setObjectName(Object objectName) throws MalformedObjectNameException
Set theObjectName
of the MBean which calls are routed to, asObjectName
instance or asString
.
setUseStrictCasing
public void setUseStrictCasing(boolean useStrictCasing)
Set whether to use strict casing for attributes. Enabled by default.When using strict casing, a JavaBean property with a getter such as
getFoo()
translates to an attribute calledFoo
. With strict casing disabled,getFoo()
would translate to justfoo
.
setManagementInterface
public void setManagementInterface(@Nullable Class<?> managementInterface)
Set the management interface of the target MBean, exposing bean property setters and getters for MBean attributes and conventional Java methods for MBean operations.
getManagementInterface
@Nullable protected final Class<?> getManagementInterface()
Return the management interface of the target MBean, ornull
if none specified.
setBeanClassLoader
public void setBeanClassLoader(ClassLoader beanClassLoader)
从接口复制的说明:BeanClassLoaderAware
Callback that supplies the beanclass loader
to a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean's
InitializingBean.afterPropertiesSet()
method or a custom init-method.- 指定者:
setBeanClassLoader
在接口中BeanClassLoaderAware
- 参数:
beanClassLoader
- the owning class loader
afterPropertiesSet
public void afterPropertiesSet()
Prepares theMBeanServerConnection
if the "connectOnStartup" is turned on (which it is by default).- 指定者:
afterPropertiesSet
在接口中InitializingBean
prepare
public void prepare()
Ensures that anMBeanServerConnection
is configured and attempts to detect a local connection if one is not supplied.
isPrepared
protected boolean isPrepared()
Return whether this client interceptor has already been prepared, i.e. has already looked up the server and cached all metadata.
invoke
@Nullable public Object invoke(MethodInvocation invocation) throws Throwable
Route the invocation to the configured managed resource..- 指定者:
invoke
在接口中MethodInterceptor
- 参数:
invocation
- theMethodInvocation
to re-route- 返回:
- the value returned as a result of the re-routed invocation
- 抛出:
Throwable
- an invocation error propagated to the user- 另请参阅:
doInvoke(org.aopalliance.intercept.MethodInvocation)
,handleConnectFailure(org.aopalliance.intercept.MethodInvocation, java.lang.Exception)
handleConnectFailure
@Nullable protected Object handleConnectFailure(MethodInvocation invocation, Exception ex) throws Throwable
Refresh the connection and retry the MBean invocation if possible.If not configured to refresh on connect failure, this method simply rethrows the original exception.
- 参数:
invocation
- the invocation that failedex
- the exception raised on remote invocation- 返回:
- the result value of the new invocation, if succeeded
- 抛出:
Throwable
- an exception raised by the new invocation, if it failed as well- 另请参阅:
setRefreshOnConnectFailure(boolean)
,doInvoke(org.aopalliance.intercept.MethodInvocation)
doInvoke
@Nullable protected Object doInvoke(MethodInvocation invocation) throws Throwable
Route the invocation to the configured managed resource. Correctly routes JavaBean property access toMBeanServerConnection.get/setAttribute
and method invocation toMBeanServerConnection.invoke
.- 参数:
invocation
- theMethodInvocation
to re-route- 返回:
- the value returned as a result of the re-routed invocation
- 抛出:
Throwable
- an invocation error propagated to the user
convertResultValueIfNecessary
@Nullable protected Object convertResultValueIfNecessary(@Nullable Object result, MethodParameter parameter)
Convert the given result object (from attribute access or operation invocation) to the specified target class for returning from the proxy method.- 参数:
result
- the result object as returned by theMBeanServer
parameter
- the method parameter of the proxy method that's been invoked- 返回:
- the converted result object, or the passed-in object if no conversion is necessary
destroy
public void destroy()
从接口复制的说明:DisposableBean
Invoked by the containingBeanFactory
on destruction of a bean.- 指定者:
destroy
在接口中DisposableBean