Udostępnij za pośrednictwem


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 AppConfigurationRefreshelement , który może służyć do sprawdzania, czy pamięć podręczna wygasła. Jeśli wygasła, zostanie wyzwolone odświeżenie.

  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.

  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:

    Key Wartość
    sentinel 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:

    Key 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.

    Key Wartość
    sentinel 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 tylko zmiany po upływie interwału odświeżania. Jeśli okres nie został przekazany, nie jest wyświetlana żadna zmiana. Poczekaj na przejście okresu, 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>5.18.0</version>
</dependency>
  1. 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
    
  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:

    Key Wartość
    sentinel 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:

    Key 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.

    Key Wartość
    sentinel 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 tylko zmiany po upływie interwału odświeżania. Jeśli interwał odświeżania nie został przekazany, 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.