Способ получения информации описания из аннотаций Spring @ Managed * состоит в том, чтобы просто объявить стандартный Spring управляемый компонент, а не MBean или MXBean.
Для этого в своем примере выне должен реализовывать интерфейс с суффиксом "MBean".Затем компонент будет обнаружен как стандартный «управляемый компонент», когда MBeanExporter зарегистрируетBeanInstance (..) и будет преобразован в ModelMBean с использованием всех пружинных аннотаций, включая описания атрибутов, операций, параметров и т. Д.
Как требование, вы должны объявить в своем весеннем контексте атрибуты MBeanExporter с AnnotationJmxAttributeSource , MetadataNamingStrategy и MetadataMBeanInfoAssembler , которыеможно упростить так:
<bean id="mbeanExporter"
class="org.springframework.jmx.export.annotation.AnnotationMBeanExporter" />
или
<context:mbean-export />
И ваш управляемый компонент должен выглядеть так (как объяснил Роланд):
@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
}
}
Помните, что не реализует интерфейс MBean, который был бы StandardMBean !!