Samouczek: używanie konfiguracji dynamicznej w aplikacji Java Spring
App Configuration ma dwie biblioteki dla platformy Spring.
spring-cloud-azure-appconfiguration-config
wymaga platformy Spring Boot i przyjmuje zależność odspring-cloud-context
elementu .spring-cloud-azure-appconfiguration-config-web
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 w celu sprawdzenia wartości odświeżonych konfiguracji.
Funkcja Refresh umożliwia aktualizowanie wartości konfiguracji bez konieczności ponownego @RefreshScope
uruchamiania aplikacji, ale powoduje ponowne utworzenie wszystkich fasoli w obiekcie . Sprawdza wszelkie zmiany skonfigurowanych wyzwalaczy, w tym metadanych. Domyślnie minimalny czas między sprawdzaniem zmian, interwałem odświeżania jest ustawiony na 30 sekund.
spring-cloud-azure-appconfiguration-config-web
Automatyczne odświeżanie jest wyzwalane na podstawie działań, w szczególności platformy ServletRequestHandledEvent
Spring Web. Jeśli element ServletRequestHandledEvent
nie zostanie wyzwolony, automatyczne odświeżanie nie wyzwoli odświeżania, spring-cloud-azure-appconfiguration-config-web
nawet jeśli czas wygaśnięcia pamięci podręcznej wygasł.
Korzystanie z odświeżania ręcznego
Aby użyć odświeżania ręcznego, zacznij od aplikacji Spring Boot korzystającej z App Configuration, takiej jak aplikacja, którą tworzysz, postępując zgodnie z przewodnikiem Szybki start platformy Spring Boot dla App Configuration.
App Configuration uwidacznia AppConfigurationRefresh
element , który może służyć do sprawdzania, czy pamięć podręczna wygasła i czy wygasło odświeżanie zostało wyzwolone.
Zaktualizuj polecenie HelloController, aby użyć polecenia
AppConfigurationRefresh
.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(); } }
AppConfigurationRefresh
Wartość "srefreshConfigurations()
zwracaMono
wartość true, jeśli odświeżanie zostało wyzwolone, a jeśli nie, wartość false. Fałsz oznacza, że czas wygaśnięcia pamięci podręcznej nie wygasł, nie nastąpiła żadna zmiana lub inny wątek jest obecnie sprawdzany pod kątem odświeżenia.Aktualizacja
bootstrap.properties
w celu włączenia odświeżaniaspring.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
Otwórz witrynę Azure Portal i przejdź do zasobu 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:
Klucz Wartość sentinel 1 Na razie pozostaw puste pole Etykieta i Typ zawartości .
Wybierz przycisk Zastosuj.
Skompiluj aplikację Spring Boot przy użyciu narzędzia Maven i uruchom ją.
mvn clean package mvn spring-boot:run
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/
Aby przetestować konfigurację dynamiczną, otwórz portal Azure App Configuration skojarzony z aplikacją. Wybierz pozycję Eksplorator konfiguracji i zaktualizuj wartość wyświetlanego klucza, na przykład:
Klucz Wartość /application/config.message Witaj — zaktualizowano 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.
Klucz Wartość sentinel 2 Odśwież stronę przeglądarki dwa razy, aby zobaczyć wyświetlany nowy komunikat. Po raz pierwszy wyzwala odświeżanie, drugi ładuje zmiany.
Uwaga
Biblioteka sprawdza tylko zmiany po upływie interwału odświeżania, jeśli okres nie przeszedł, wówczas nie będzie widoczna żadna zmiana, trzeba będzie poczekać na przejście okresu, a następnie wyzwolić 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 App Configuration, takiej jak utworzona aplikacja, korzystając z przewodnika Szybki start Spring Boot dla 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.
Spring Boot
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
<version>5.8.0</version>
</dependency>
Aktualizacja
bootstrap.properties
w celu włączenia odświeżaniaspring.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
Otwórz witrynę Azure Portal i przejdź do zasobu 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:
Klucz Wartość sentinel 1 Na razie pozostaw puste pole Etykieta i Typ zawartości .
Wybierz przycisk Zastosuj.
Skompiluj aplikację Spring Boot przy użyciu narzędzia Maven i uruchom ją.
mvn clean package mvn spring-boot:run
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/
Aby przetestować konfigurację dynamiczną, otwórz portal Azure App Configuration skojarzony z aplikacją. Wybierz pozycję Eksplorator konfiguracji i zaktualizuj wartość wyświetlanego klucza, na przykład:
Klucz Wartość /application/config.message Witaj — zaktualizowano 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.
Klucz Wartość sentinel 2 Odśwież stronę przeglądarki dwa razy, aby zobaczyć wyświetlany nowy komunikat. Po raz pierwszy wyzwala odświeżanie, drugi ładuje zmiany, ponieważ pierwsze żądanie zwraca wartość 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 będzie on sprawdzany pod kątem zmian, trzeba będzie poczekać na przekazanie interwału, a następnie wyzwolić sprawdzanie odświeżania.
Następne kroki
W tym samouczku włączono aplikację Spring Boot w celu dynamicznego odświeżania ustawień konfiguracji z App Configuration. Aby uzyskać więcej pytań, zobacz dokumentację referencyjną, zawiera ona wszystkie szczegółowe informacje na temat sposobu działania biblioteki spring cloud Azure App Configuration. Aby dowiedzieć się, jak używać tożsamości zarządzanej platformy Azure w celu usprawnienia dostępu do App Configuration, przejdź do następnego samouczka.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla