Java Reference
In-Depth Information
<value>replicate</value>
</list>
</property>
</bean>
</beans>
Another MBean assembler is
InterfaceBasedMBeanInfoAssembler
, which exports all methods
defined in the interfaces you specified.
<bean id="assembler" class="org.springframework.jmx.export.assembler.
➥
InterfaceBasedMBeanInfoAssembler">
<property name="managedInterfaces">
<list>
<value>com.apress.springenterpriserecipes.replicator.
➥
FileReplicator</value>
</list>
</property>
</bean>
Spring also provides
MetadataMBeanInfoAssembler
to assemble an MBean's management interface
based on the metadata in the bean class. It supports two types of metadata: JDK annotations and
Apache Commons Attributes (behind the scenes, this is accomplished using a strategy interface
JmxAttributeSource
). For a bean class annotated with JDK annotations, you specify an
AnnotationJmxAttributeSource
instance as the attribute source of
MetadataMBeanInfoAssembler
.
<bean id="assembler" class="org.springframework.jmx.export.assembler.
➥
MetadataMBeanInfoAssembler">
<property name="attributeSource">
<bean class="org.springframework.jmx.export.annotation.
➥
AnnotationJmxAttributeSource" />
</property>
</bean>
Then you annotate your bean class and methods with the annotations
@ManagedResource
,
@ManagedAttribute
, and
@ManagedOperation
for
MetadataMBeanInfoAssembler
to assemble the
management interface for this bean. The annotations are easily interpreted. They expose the element
that they annotate. If you have a JavaBeans-compliant property, JMX will use the term
attribute
. Classes
themselves are referred to as
resources
. In JMX, methods will be called
operations
. Knowing that, it's easy
to see what the following code does:
package com.apress.springenterpriserecipes.replicator;
...
import org.springframework.jmx.export.annotation.ManagedAttribute;
import org.springframework.jmx.export.annotation.ManagedOperation;
import org.springframework.jmx.export.annotation.ManagedResource;
@ManagedResource(description = "File replicator")
public class FileReplicatorImpl implements FileReplicator {
...
@ManagedAttribute(description = "Get source directory")
public String getSrcDir() {
...
}
Search WWH ::
Custom Search