...
Le support de JMX dans Spring offre des fonctionnalités simples et transparentes pour intégrer votre application Spring dans une infrastructure JMX.
Spring JMX vous permet entre autres d'enregistrer automatiquement n'importe quel bean Spring en tant que MBean JMX.
La classe principale de Spring JMX est MBeanExporter. Cette classe est responsable de prendre en charge et d'enregistrer vos beans Spring dans un MBeanServer.
Pour exposer les propriétés et les méthodes d'un bean en tant qu'attributs et opérations d'un MBean, il faut simplement configurer une instance de la classe MBeanExporter dans le fichier de configuration.
La propriété "beans" de la classe MBeanExporter permet de savoir exactement quels beans doivent être exporté au MBeanServer.
Spring JMX offre aussi la possibilité de créer un connecteur serveur pour permettre l'accès au MBeanServer à distance. Pour cela il utilise le connecteur JSR-160.
Exemple: surveillance de la disponibilité d'un service CMIS par une application "cliente"
...
Le service cmisFileStorageService doit savoir en temps réel si le service CMIS est actif ou non. Le bean jmxTestCmis, *grâce à sa méthode *getCmisIsReady(), donne cette information.
Les propriétés attributs et méthodes de ce bean sont exposés comme MBean grâce à la classe Spring MBeanExporter.
...
<bean id="jmxTestCmis"
class="org.esupportail.application.service.fileStorage.JmxTestCmisImpl">
...
</bean>
<!-- JMX to control CMIS -->
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" >
<property name="beans">
<map>
<entry key="bean:name=testCmis" value-ref="jmxTestCmis"/>
</map>
</property>
</bean>
...
- L'application cliente JMX ne fait ici que lire l'état du serveur CMIS. On pourrait imaginer aller plus loin et vouloir l'administrer à distance.Le serveur de MBean (MbeanServer)
- Le serveur de MBean (MbeanServer) n'est utilisé dans cet exempleutilisé ici est celui par défaut (celui de tomcat par exemple).