Konfigurieren von JMX mit Spring Boot

7

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 Ссылка

    
zachariahyoung 26.08.2014, 03:05
quelle

2 Antworten

16

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:

%Vor%

Wenn importierte Klassen bereits vorhanden sind, sind sie nicht überschreibbar.

Sie haben mehrere Möglichkeiten, um Ihre Anforderungen zu erfüllen:

  1. Deaktivieren Sie den Standard-Spring-Boot-JMX - fügen Sie einfach zum application.properties spring.jmx.enabled = false hinzu und verwenden Sie weiterhin @EnableIntegrationMBeanExport

  2. Konfigurieren Sie IntegrationMBeanExporter @Bean manuell.

  3. Konfigurieren Sie einfach Ihre my.company.domain -Domäne in application.properties :

    %Vor%
Artem Bilan 26.08.2014 04:17
quelle
2

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

    
scudsucker 17.10.2016 10:47
quelle