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 společně s Aplikací Spring Boot a přidává také podporu automatické kontroly aktualizace konfigurace.
Obě knihovny podporují ruční aktivaci, která kontroluje aktualizované hodnoty konfigurace.
Aktualizace umožňuje aktualizovat hodnoty konfigurace, aniž byste museli restartovat aplikaci, i když způsobí opětovné vytvoření všech fazolí @RefreshScope
. Kontroluje všechny změny nakonfigurovaných triggerů, včetně metadat. Ve výchozím nastavení je minimální doba mezi kontrolami změn, intervalem 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 platnost doby vypršení platnosti mezipaměti.
Použití ruční aktualizace
Pokud chcete použít ruční aktualizaci, začněte s aplikací Spring Boot, která používá konfiguraci aplikace, jako je aplikace, kterou vytvoříte, pomocí rychlého startu Spring Boot pro konfiguraci aplikace.
Služba App Configuration zveřejňuje AppConfigurationRefresh
, která se dá použít ke kontrole, jestli vypršela platnost mezipaměti. Pokud platnost vypršela, aktivuje se aktualizace.
Chcete-li použít
AppConfigurationRefresh
, aktualizujte 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
VrátírefreshConfigurations()
Mono
hodnotu true, pokud se aktivuje aktualizace, a pokud ne, vrátí hodnotu false. Nepravda znamená, že vypršela platnost doby vypršení platnosti mezipaměti, nedošlo k žádné změně nebo aktuálně kontroluje aktualizace jiné vlákno.Povolení aktualizace
bootstrap.properties
: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
Otevřete Azure Portal a přejděte k prostředku konfigurace aplikace přidruženému k vaší aplikaci. V části Operace vyberte Průzkumníka konfigurace a vytvořte nový pár klíč-hodnota výběrem + Vytvořit>klíč-hodnota a přidejte následující parametry:
Key Hodnota Sentinel 0 Prozatím ponechte popisek a typ obsahu 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 nástroj curl , například:
curl -X GET http://localhost:8080/
Pokud chcete otestovat dynamickou konfiguraci, otevřete Aplikace Azure konfigurační portál přidružený k vaší aplikaci. Vyberte Průzkumníka konfigurace a aktualizujte hodnotu zobrazeného klíče, například:
Key Hodnota /application/config.message Hello – aktualizováno Aktualizujte klíč sentinelu, který jste vytvořili dříve, na novou hodnotu. Tato změna aktivuje aplikaci, aby po předání intervalu aktualizace aktualizovala všechny konfigurační klíče.
Key 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 se změny načte druhý.
Poznámka:
Knihovna kontroluje změny pouze po uplynutí intervalu aktualizace. Pokud období neproběhlo, nezobrazí se žádná změna. Počkejte, než se období projde, a pak aktivujte kontrolu aktualizace.
Použití automatizované aktualizace
Pokud chcete použít automatizovanou aktualizaci, začněte aplikací Spring Boot, která používá konfiguraci aplikací, jako je aplikace, kterou vytvoříte, podle rychlého startu Spring Boot pro App Configuration.
Potom otevřete soubor pom.xml v textovém editoru a přidejte ho <dependency>
pro spring-cloud-azure-appconfiguration-config-web
použití následujícího kódu.
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
<version>5.18.0</version>
</dependency>
Povolení aktualizace
bootstrap.properties
: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
Otevřete Azure Portal a přejděte k prostředku konfigurace aplikace přidruženému k vaší aplikaci. V části Operace vyberte Průzkumníka konfigurace a vytvořte nový pár klíč-hodnota výběrem + Vytvořit>klíč-hodnota a přidejte následující parametry:
Key Hodnota Sentinel 0 Prozatím ponechte popisek a typ obsahu 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
. Teď se zobrazí zpráva přidružená k vašemu klíči.K otestování aplikace můžete použít nástroj curl , například:
curl -X GET http://localhost:8080/
Pokud chcete otestovat dynamickou konfiguraci, otevřete Aplikace Azure konfigurační portál přidružený k vaší aplikaci. Vyberte Průzkumníka konfigurace a aktualizujte hodnotu zobrazeného klíče, například:
Key Hodnota /application/config.message Hello – aktualizováno Aktualizujte klíč sentinelu, který jste vytvořili dříve, na novou hodnotu. Tato změna aktivuje aplikaci, aby po předání intervalu aktualizace aktualizovala všechny konfigurační klíče.
Key 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 se při druhém načtení změn načte, protože první požadavek vrátí původní obor.
Poznámka:
Knihovna kontroluje změny pouze po uplynutí intervalu aktualizace. Pokud se interval aktualizace nepředá, nezkontroluje změny. Počkejte, než se interval projde, a pak spusťte kontrolu aktualizace.
Další kroky
V tomto kurzu jste povolili aplikaci Spring Boot, aby dynamicky aktualizovala nastavení konfigurace z app Configuration. Další dotazy najdete v referenční dokumentaci, kde najdete všechny podrobnosti o tom, jak knihovna Spring Cloud Aplikace Azure Configuration library funguje. Pokud chcete zjistit, jak pomocí spravované identity Azure zjednodušit přístup ke službě App Configuration, pokračujte dalším kurzem.