Frage

Ich bin ziemlich neu im Spring-Framework und im ganzen Frühling-* Ich habe angefangen, mich mit Spring Boot zu befassen und es als Kandidaten für ein neues Produkt rund um REST-Dienste zu bewerten.

Im Moment interessiert mich, was über die „Aktuator„Modul, sofort einsatzbereit weiß ich, dass ich Informationen (/info), einen Überwachungs-Hook (/health) und sogar einen Endpunkt zum Herunterfahren sammeln kann, alles vom Hauptserver entkoppelt, indem ich eine Konfigurationsoption bereitstelle, um diese Endpunkte unter einem bestimmten Port zu platzieren und 'Namensraum'

management.port=9000
management.contextPath=/admin

Ich suche nach einem Hinweis, wie ich meinen eigenen Endpunkt zu den bereits definierten hinzufügen kann (Hinweis: Ich möchte den vorhandenen Endpunkt nicht anreichern, wie es mit HealthIndicator vorgeschlagen wird, sondern ich möchte wirklich einen neuen hinzufügen, z. B. „/admin/get_me_out_of_load_balancers“. ')

Ich kann sehen, dass alle vorhandenen Endpunkte AbstractEndpoint erweitern, aber es ist mir nicht gelungen, meinen Endpunkt unter dem VerwaltungskontextPath verfügbar zu machen ...

War es hilfreich?

Lösung

Machen Sie eine Instanz von Ihnen verfügbar Endpoint Klasse als Bohne;Automatische Konfiguration des Aktuators von Spring Boot werde es entdecken automatisch.Zum Beispiel:

package demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.endpoint.Endpoint;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public static Endpoint exampleEndpoint() {
        return new Endpoint<String>() {
            @Override
            public String getId() {
                return "example";
            }

            @Override
            public boolean isEnabled() {
                return true;
            }

            @Override
            public boolean isSensitive() {
                return false;
            }

            @Override
            public String invoke() {
                return "example";
            }
        };
    }
}

Andere Tipps

Sie können es problemlos in einer separaten Klasse mit AbstractMvcEndpoint implementieren und generationstaboditicetagcode verwenden, um Parameter zum Endpunkt zu vereinfachen oder hinzuzufügen, sodass Sie andere Dienste informieren können:

generasacodicetagpre.

Es ist auch interessant zu berücksichtigen ( + info ):

Wenn Sie dies als Bibliotheksfunktion tun, sollten Sie ein Hinzufügen von Konfigurationsklasse mit @managementContext-Konfiguration angeboten /Meta-inf/spring.Factories unter dem Schlüssel org.springframework.boot.actued.autoconfigure.managementContextConfiguration. Wenn Sie dies tun, wird der Endpunkt mit allen in einen untergeordneten Kontext bewegt Die anderen MVC-Endpunkte, wenn Ihre Benutzer nach einem separaten Management verlangen Port oder Adresse. Eine Konfiguration kann auf diese Weise deklariert werden WebconfigürterAster, wenn er statische Ressourcen hinzufügen möchte (für Instanz) an die Verwaltungsendpunkte.

für den Federstiefel 2 haben einen Blick auf die Probe: Federstiefelaktor: 5.2.Benutzerdefinierte Endpoint

generasacodicetagpre.

siehe auch Einführung von Aktuatorendpunkten im Spring Boot 2.0

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top