Ich habe eine Spring Integration Anwendung mit Spring Boot erstellt. Ich würde gerne wissen, wie man JMX mit Spring Boot konfiguriert. Ich glaube standardmäßig JMX ist konfiguriert, wenn Spring Boot Actuator verwendet.
Muss ich etwas anderes konfigurieren, um MBeans für die Spring Integration exportieren zu können?
Das meiste des Beispiels, das ich sehe, hat die folgende Zeile in der applicationContext.xml
%Vor%Meine Application.java-Klasse sieht so aus.
%Vor%Das Hinzufügen dieser Zeile zur Konfiguration scheint die Spring Integration mbeans
nicht zu exportieren %Vor%Ich verweise auf dieses Video Ссылка
Wie Sie die Spring-Integration verstehen, ist JMX standardmäßig aktiviert, wenn Sie nur spring-integration-jmx
im Klassenpfad haben. Und natürlich, wenn spring.jmx.enabled = true
(Standard).
Sie können nicht einfach eine weitere @EnableIntegrationMBeanExport
deklarieren, weil sie auf @Import
basiert, und Sie können Importklassen wegen (aus ConfigurationClassParser
) nicht überschreiben:
Wenn importierte Klassen bereits vorhanden sind, sind sie nicht überschreibbar.
Sie haben mehrere Möglichkeiten, um Ihre Anforderungen zu erfüllen:
Deaktivieren Sie den Standard-Spring-Boot-JMX - fügen Sie einfach zum application.properties
spring.jmx.enabled = false
hinzu und verwenden Sie weiterhin @EnableIntegrationMBeanExport
Konfigurieren Sie IntegrationMBeanExporter
@Bean
manuell.
Konfigurieren Sie einfach Ihre my.company.domain
-Domäne in application.properties
:
Es ist ziemlich spät, dies hinzuzufügen; aber zusätzlich zu endpoints.jmx.domain
fand ich es nützlich, die spring.jmx.default-domain
zu etwas Einmaligem pro Anwendung zu ändern
Dies ist mit mehreren Instanzen von Spring Boot 1.4.1-Anwendungen in Tomcat 7 ausgeführt
Tags und Links spring-boot jmx spring-integration