Kurz: Použití dynamické konfigurace v aplikaci Java Spring
App Configuration má dvě knihovny pro Spring.
spring-cloud-azure-appconfiguration-config
vyžaduje Spring Boot a přebírá závislost naspring-cloud-context
.spring-cloud-azure-appconfiguration-config-web
vyžaduje Spring Web spolu s Spring Bootem a také přidává podporu pro automatickou kontrolu aktualizace konfigurace.
Obě knihovny podporují ruční aktivaci ke kontrole hodnot aktualizované konfigurace.
Aktualizace umožňuje aktualizovat hodnoty konfigurace, aniž byste museli restartovat aplikaci, i když to způsobí, že se všechny fazole v nástroji @RefreshScope
znovu vytvoří. Kontroluje všechny změny nakonfigurovaných triggerů, včetně metadat. Ve výchozím nastavení je minimální doba mezi kontrolami změn (interval aktualizace) nastavená na 30 sekund.
spring-cloud-azure-appconfiguration-config-web
automatická aktualizace se aktivuje na základě aktivity, konkrétně spring web .ServletRequestHandledEvent
ServletRequestHandledEvent
Pokud se neaktivuje, spring-cloud-azure-appconfiguration-config-web
automatická aktualizace neaktivuje aktualizaci ani v případě, že vypršela doba vypršení platnosti mezipaměti.
Použití ruční aktualizace
Pokud chcete použít ruční aktualizaci, začněte aplikací Spring Boot, která používá App Configuration, jako je například aplikace, kterou vytvoříte pomocí rychlého startu spring bootu pro App Configuration.
App Configuration zpřístupňuje AppConfigurationRefresh
nástroj , který lze použít ke kontrole, jestli platnost mezipaměti vypršela a jestli vypršela, aktivuje se aktualizace.
Aktualizujte HelloController tak, aby používal
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
'srefreshConfigurations()
vrátíMono
hodnotu true, pokud byla aktivována aktualizace, a false, pokud ne. False znamená, že doba vypršení platnosti mezipaměti nevypršela, nedošlo k žádné změně nebo se aktualizace momentálně kontroluje jiným vláknem.Aktualizace
bootstrap.properties
pro povolení aktualizacespring.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
Otevřete Web Azure Portal a přejděte k prostředku App Configuration přidruženému k vaší aplikaci. V části Operace vyberte Průzkumníka konfigurace a vytvořte nový párklíč-hodnota tak, že vyberete + Vytvořit> klíč-hodnota a přidáte následující parametry:
Klíč Hodnota Sentinel 1 Popisek a typ obsahu nechte prozatím prázdné.
Vyberte Použít.
Sestavte aplikaci Spring Boot pomocí Mavenu a spusťte ji.
mvn clean package mvn spring-boot:run
Otevřete okno prohlížeče a přejděte na adresu URL:
http://localhost:8080
. Zobrazí se zpráva přidružená k vašemu klíči.K otestování aplikace můžete použít také curl , například:
curl -X GET http://localhost:8080/
Pokud chcete otestovat dynamickou konfiguraci, otevřete portál Azure App Configuration přidružený k vaší aplikaci. Vyberte Průzkumník konfigurace a aktualizujte hodnotu zobrazeného klíče, například:
Klíč Hodnota /application/config.message Dobrý den – aktualizováno Aktualizujte dříve vytvořený klíč sentinelu na novou hodnotu. Tato změna aktivuje aplikaci aktualizaci všech konfiguračních klíčů po uplynutí intervalu aktualizace.
Klíč Hodnota Sentinel 2 Aktualizujte stránku prohlížeče dvakrát, aby se zobrazila nová zpráva. Při prvním aktivaci aktualizace se změny načte podruhé.
Poznámka
Knihovna kontroluje změny pouze po uplynutí intervalu aktualizace. Pokud období neuplyne, žádná změna se nezobrazí, budete muset počkat na uplynutí období a pak aktivovat kontrolu aktualizace.
Použití automatizované aktualizace
Pokud chcete použít automatickou aktualizaci, začněte aplikací Spring Boot, která používá App Configuration, například aplikaci, kterou vytvoříte, podle pokynů v rychlém startu spring bootu pro App Configuration.
Potom otevřete souborpom.xml v textovém editoru a přidejte <dependency>
pro spring-cloud-azure-appconfiguration-config-web
použití následujícího kódu.
Spring Boot
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
<version>5.8.0</version>
</dependency>
Aktualizace
bootstrap.properties
pro povolení aktualizacespring.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
Otevřete Web Azure Portal a přejděte k prostředku App Configuration přidruženému k vaší aplikaci. V části Operace vyberte Průzkumníka konfigurace a vytvořte nový párklíč-hodnota tak, že vyberete + Vytvořit> klíč-hodnota a přidáte následující parametry:
Klíč Hodnota Sentinel 1 Popisek a typ obsahu nechte prozatím prázdné.
Vyberte Použít.
Sestavte aplikaci Spring Boot pomocí Mavenu a spusťte ji.
mvn clean package mvn spring-boot:run
Otevřete okno prohlížeče a přejděte na adresu URL:
http://localhost:8080
. Zobrazí se zpráva přidružená k vašemu klíči.K otestování aplikace můžete použít také curl , například:
curl -X GET http://localhost:8080/
Pokud chcete otestovat dynamickou konfiguraci, otevřete portál Azure App Configuration přidružený k vaší aplikaci. Vyberte Průzkumník konfigurace a aktualizujte hodnotu zobrazeného klíče, například:
Klíč Hodnota /application/config.message Dobrý den – aktualizováno Aktualizujte dříve vytvořený klíč sentinelu na novou hodnotu. Tato změna aktivuje aplikaci aktualizaci všech konfiguračních klíčů po uplynutí intervalu aktualizace.
Klíč Hodnota Sentinel 2 Aktualizujte stránku prohlížeče dvakrát, aby se zobrazila nová zpráva. Při prvním spuštění aktualizace načte změny, protože první požadavek vrátí původní obor.
Poznámka
Knihovna kontroluje změny až po uplynutí intervalu aktualizace. Pokud interval aktualizace neuplyne, nebude kontrolovat změny, budete muset počkat, až interval projde, a pak aktivovat kontrolu aktualizace.
Další kroky
V tomto kurzu jste aplikaci Spring Boot povolili dynamicky aktualizovat nastavení konfigurace z App Configuration. Další dotazy najdete v referenční dokumentaci, kde najdete všechny podrobnosti o tom, jak knihovna Spring Cloud Azure App Configuration funguje. Pokud chcete zjistit, jak pomocí spravované identity Azure zjednodušit přístup k App Configuration, pokračujte k dalšímu kurzu.