Udostępnij za pomocą


Samouczek: używanie konfiguracji dynamicznej w aplikacji Java Spring

Usługa App Configuration ma dwie biblioteki dla platformy Spring.

  • spring-cloud-azure-appconfiguration-config wymaga platformy Spring Boot i przyjmuje zależność od spring-cloud-context.
  • spring-cloud-azure-appconfiguration-config-web Program wymaga platformy Spring Web wraz z platformą Spring Boot, a także dodaje obsługę automatycznego sprawdzania odświeżania konfiguracji.

Obie biblioteki obsługują wyzwalanie ręczne, aby sprawdzić, czy nie zostały odświeżone wartości konfiguracji.

Funkcja Refresh umożliwia aktualizowanie wartości konfiguracji bez konieczności ponownego uruchamiania aplikacji, ale powoduje ponowne utworzenie wszystkich fasoli w @RefreshScope obiekcie . Sprawdza wszelkie zmiany w skonfigurowanych wyzwalaczach, w tym metadanych. Domyślnie minimalny czas między sprawdzaniem zmian, interwał odświeżania jest ustawiony na 30 sekund.

spring-cloud-azure-appconfiguration-config-webAutomatyczne odświeżanie jest wyzwalane na podstawie działania, a w szczególności aplikacji Spring Web ServletRequestHandledEvent. ServletRequestHandledEvent Jeśli element nie zostanie wyzwolony, spring-cloud-azure-appconfiguration-config-webautomatyczne odświeżanie nie wyzwoli odświeżania, nawet jeśli czas wygaśnięcia pamięci podręcznej wygaśnie.

Korzystanie z odświeżania ręcznego

Aby użyć odświeżania ręcznego, zacznij od aplikacji Spring Boot korzystającej z usługi App Configuration, takiej jak utworzona aplikacja, postępując zgodnie z przewodnikiem Szybki start platformy Spring Boot dla usługi App Configuration.

Usługa App Configuration uwidacznia element AppConfigurationRefresh, który sprawdza, czy interwał odświeżania minął. Jeśli minął interwał odświeżania, wyzwala odświeżanie.

  1. Aby użyć polecenia AppConfigurationRefresh, zaktualizuj polecenie HelloController.

    import com.azure.spring.cloud.config.AppConfigurationRefresh;
    
    @RestController
    public class HelloController {
        private final MessageProperties properties;
    
        @Autowired(required = false)
        private AppConfigurationRefresh refresh;
    
        public HelloController(MessageProperties properties) {
            this.properties = properties;
        }
    
        @GetMapping
        public String getMessage() throws InterruptedException, ExecutionException {
            if (refresh != null) {
                refresh.refreshConfigurations();
            }
            return "Message: " + properties.getMessage();
        }
    }
    

    AppConfigurationRefreshFunkcja "s refreshConfigurations() zwraca Mono wartość true, jeśli odświeżanie jest wyzwalane, a w przeciwnym razie wartość false. Fałsz oznacza, że czas wygaśnięcia pamięci podręcznej nie wygasł, nie nastąpiła zmiana lub inny wątek jest obecnie sprawdzany pod kątem odświeżenia.

    Uwaga

    W przypadku bibliotek takich jak Spring WebFlux, które wymagają wywołań nieblokujących, należy refreshConfigurations() opakować w wątek, ponieważ ładowanie konfiguracji wymaga wywołania blokującego.

    new Thread(() -> refresh.refreshConfigurations()).start();
    
  2. Aby włączyć aktualizację bootstrap.propertiesodświeżania:

    spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true
    spring.cloud.azure.appconfiguration.stores[0].monitoring.refresh-interval= 30s
    spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinel
    
  3. Otwórz witrynę Azure Portal i przejdź do zasobu usługi App Configuration skojarzonego z aplikacją. Wybierz pozycję Eksplorator konfiguracji w obszarze Operacje i utwórz nową parę klucz-wartość, wybierając pozycję + Utwórz>klucz-wartość, aby dodać następujące parametry:

    Klawisz Wartość
    strażnik 1

    Na razie pozostaw puste etykiety i typ zawartości.

  4. Wybierz Zastosuj.

  5. Skompiluj aplikację Spring Boot przy użyciu narzędzia Maven i uruchom ją.

    mvn clean package
    mvn spring-boot:run
    
  6. Otwórz okno przeglądarki i przejdź do adresu URL: http://localhost:8080. Zostanie wyświetlony komunikat skojarzony z kluczem.

    Możesz również użyć narzędzia curl do przetestowania aplikacji, na przykład:

    curl -X GET http://localhost:8080/
    
  7. Aby przetestować konfigurację dynamiczną, otwórz portal konfiguracji aplikacja systemu Azure skojarzony z aplikacją. Wybierz pozycję Eksplorator konfiguracji i zaktualizuj wartość wyświetlanego klucza, na przykład:

    Klawisz Wartość
    /application/config.message Witaj — zaktualizowano
  8. Zaktualizuj utworzony wcześniej klucz sentinel do nowej wartości. Ta zmiana wyzwala aplikację w celu odświeżenia wszystkich kluczy konfiguracji po przekazaniu interwału odświeżania.

    Klawisz Wartość
    strażnik 2
  9. Odśwież stronę przeglądarki dwa razy, aby wyświetlić nowy komunikat. Przy pierwszym wyzwoleniu odświeżania drugi ładuje zmiany.

    Uwaga

    Biblioteka sprawdza zmiany tylko po upływie interwału odświeżania. Jeśli interwał odświeżania nie upłynął, nie sprawdza zmian. Poczekaj na przekazanie interwału, a następnie wyzwól sprawdzanie odświeżania.

Korzystanie z automatycznego odświeżania

Aby użyć automatycznego odświeżania, zacznij od aplikacji Spring Boot korzystającej z usługi App Configuration, takiej jak utworzona aplikacja, postępując zgodnie z przewodnikiem Szybki start platformy Spring Boot dla usługi App Configuration.

Następnie otwórz plik pom.xml w edytorze tekstów i dodaj element <dependency> do spring-cloud-azure-appconfiguration-config-web użycia przy użyciu następującego kodu.

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
    <version>6.0.0</version>
</dependency>
  1. Aby włączyć aktualizację application.propertiesodświeżania:

    spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true
    spring.cloud.azure.appconfiguration.stores[0].monitoring.refresh-interval= 30s
    spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinel
    
  2. Otwórz witrynę Azure Portal i przejdź do zasobu usługi App Configuration skojarzonego z aplikacją. Wybierz pozycję Eksplorator konfiguracji w obszarze Operacje i utwórz nową parę klucz-wartość, wybierając pozycję + Utwórz>klucz-wartość, aby dodać następujące parametry:

    Klawisz Wartość
    strażnik 1

    Na razie pozostaw puste etykiety i typ zawartości.

  3. Wybierz Zastosuj.

  4. Skompiluj aplikację Spring Boot przy użyciu narzędzia Maven i uruchom ją.

    mvn clean package
    mvn spring-boot:run
    
  5. Otwórz okno przeglądarki i przejdź do adresu URL: http://localhost:8080. Zostanie wyświetlony komunikat skojarzony z kluczem.

    Możesz również użyć narzędzia curl do przetestowania aplikacji, na przykład:

    curl -X GET http://localhost:8080/
    
  6. Aby przetestować konfigurację dynamiczną, otwórz portal konfiguracji aplikacja systemu Azure skojarzony z aplikacją. Wybierz pozycję Eksplorator konfiguracji i zaktualizuj wartość wyświetlanego klucza, na przykład:

    Klawisz Wartość
    /application/config.message Witaj — zaktualizowano
  7. Zaktualizuj utworzony wcześniej klucz sentinel do nowej wartości. Ta zmiana wyzwala aplikację w celu odświeżenia wszystkich kluczy konfiguracji po przekazaniu interwału odświeżania.

    Klawisz Wartość
    strażnik 2
  8. Odśwież stronę przeglądarki dwa razy, aby wyświetlić nowy komunikat. Po raz pierwszy wyzwala odświeżanie, drugi ładuje zmiany, ponieważ pierwsze żądanie zwraca przy użyciu oryginalnego zakresu.

    Uwaga

    Biblioteka sprawdza zmiany tylko po upływie interwału odświeżania. Jeśli interwał odświeżania nie upłynął, nie sprawdza zmian. Poczekaj na przekazanie interwału, a następnie wyzwól sprawdzanie odświeżania.

Następne kroki

W tym samouczku włączono aplikację Spring Boot w celu dynamicznego odświeżania ustawień konfiguracji z poziomu usługi App Configuration. Aby uzyskać więcej pytań, zobacz dokumentację referencyjną, zawiera ona wszystkie szczegółowe informacje na temat działania biblioteki konfiguracji spring cloud aplikacja systemu Azure. Aby dowiedzieć się, jak używać tożsamości zarządzanej platformy Azure w celu usprawnienia dostępu do usługi App Configuration, przejdź do następnego samouczka.