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ść odspring-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-web
Automatyczne 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-web
automatyczne 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 AppConfigurationRefresh
element , który może służyć do sprawdzania, czy pamięć podręczna wygasła. Jeśli wygasła, zostanie wyzwolone odświeżenie.
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(); } }
AppConfigurationRefresh
Funkcja "srefreshConfigurations()
zwracaMono
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.Aby włączyć aktualizację
bootstrap.properties
odś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
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.
Wybierz 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 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 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 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>
Aby włączyć aktualizację
bootstrap.properties
odś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
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.
Wybierz 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 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 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 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.