La forma de obtener la información de descripción de las anotaciones de Spring @ Managed * es solo para declarar un Spring "bean administrado" estándar, y no un MBean o MXBean.
Para hacer esto, en su ejemplo, no debe implementar la interfaz con el sufijo "MBean". Luego, el bean se detectará como un "bean administrado" estándar cuando MBeanExporter registrará BeanInstance (..), y se convertirá a un ModelMBean usando todas las anotaciones de primavera, incluyendo descripciones de atributos, operaciones, parámetros, etc.
Como requisito, se debe declarar en su contexto la primavera del MBeanExporter con AnnotationJmxAttributeSource, MetadataNamingStrategy, y MetadataMBeanInfoAssembler atributos, que se puede simplificarse así:
<bean id="mbeanExporter"
class="org.springframework.jmx.export.annotation.AnnotationMBeanExporter" />
o
<context:mbean-export />
Y el bean administrado debe tener este aspecto (como se explica por Roland):
@Component("myManagedBean")
@ManagedResource(objectName="your.domain.jmx:name=MyMBean",
description="My MBean goal")
public class AnnotationTestBean {
private int age;
@ManagedAttribute(description="The age attribute", currencyTimeLimit=15)
public int getAge() {
return age;
}
@ManagedOperation(description = "Check permissions for the given activity")
@ManagedOperationParameters({
@ManagedOperationParameter(name = "activity",
description = "The activity to check")
})
public boolean isAllowedTo(final String activity) {
// impl
}
}
Recuerde que no implementa una interfaz MBean, lo que sería un StandardMBean !!
Según entiendo, Java Doc para MBeanInfo dice que es posible, pero no hay ejemplos y las definiciones son lo suficientemente claras: http://download.oracle.com/javase/1.5.0/docs/api/javax/management /MBeanInfo.html – Raman