Kurz: Použití dynamické konfigurace v aplikaci Java Spring

App Configuration má dvě knihovny pro Spring. azure-spring-cloud-appconfiguration-config vyžaduje Spring Boot a využívá závislost na spring-cloud-context . azure-spring-cloud-appconfiguration-config-web vyžaduje Spring Web společně s Spring Boot. Obě knihovny podporují ruční aktivaci, která zkontroluje hodnoty obnovené konfigurace. azure-spring-cloud-appconfiguration-config-web také přidává podporu automatické kontroly aktualizace konfigurace.

Aktualizace umožňuje aktualizovat konfigurační hodnoty bez nutnosti restartovat aplikaci, i když to způsobí opětovné vytvoření všech @RefreshScope bobů v objektu . Klientská knihovna ukládá ID hodnoty hash aktuálně načtených konfigurací do mezipaměti, aby nedocházelo k příliš mnoha voláním úložiště konfigurace. Operace aktualizace ne aktualizování hodnoty, dokud nevypadne platnost hodnoty uložené v mezipaměti, a to i v případě, že se hodnota v konfiguračním úložiště změnila. Výchozí doba vypršení platnosti každého požadavku je 30 sekund. V případě potřeby je možné ho přepsat.

azure-spring-cloud-appconfiguration-config-webse automatická aktualizace aktivuje na základě aktivity, konkrétně z webu Spring ServletRequestHandledEvent Web. Pokud se nespustila akce , automatická aktualizace nespouštěla aktualizaci ani v případě, ServletRequestHandledEvent azure-spring-cloud-appconfiguration-config-web že vypršela doba vypršení platnosti mezipaměti.

Použití ruční aktualizace

App Configuration zpřístupňuje, pomocí kterého můžete zkontrolovat, jestli platnost mezipaměti vypršela a jestli AppConfigurationRefresh vypršela její platnost, aktivujte aktualizaci.

import com.azure.spring.cloud.config.AppConfigurationRefresh;

...

@Autowired
private AppConfigurationRefresh appConfigurationRefresh;

...

public void myConfigurationRefreshCheck() {
    Future<Boolean> triggeredRefresh = appConfigurationRefresh.refreshConfigurations();
}

AppConfigurationRefreshvrátí hodnotu , která má hodnotu true, pokud byla aktivována refreshConfigurations() Future aktualizace, a hodnotu false, pokud ne. False znamená, že buď nevypršela doba vypršení platnosti mezipaměti, neprošela žádná změna, nebo jiné vlákno aktuálně kontroluje aktualizaci.

Použití automatizované aktualizace

Pokud chcete používat automatizovanou aktualizaci, začněte s aplikací Spring Boot, která používá App Configuration, jako je například aplikace, kterou vytvoříte, podle Spring Boot rychléhostartu pro App Configuration .

Pak otevřete soubor pom.xml v textovém editoru a pomocí <dependency> následujícího kódu přidejte pro azure-spring-cloud-appconfiguration-config-web .

Spring Boot

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>azure-spring-cloud-appconfiguration-config-web</artifactId>
    <version>2.0.0</version>
</dependency>

Poznámka

Pokud potřebujete podporu pro starší závislosti, podívejte se na naši předchozí knihovnu.

  1. Aktualizace bootstrap.properties pro povolení aktualizace

    spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true
    spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinel
    
  2. Otevřete Azure Portal a přejděte ke svému prostředku App Configuration přidruženému k vaší aplikaci. V části Operace vyberte Průzkumník konfigurace a výběrem + Vytvořit klíč-hodnotu vytvořte nový pár > klíč-hodnota a přidejte následující parametry:

    Klíč Hodnota
    Sentinel 1

    Pole Label (Popisek) a Content Type (Typ obsahu) nechejte v seznamu prázdné.

  3. Vyberte Použít.

  4. Sestavte aplikaci Spring Boot pomocí Mavenu a spusťte ji.

    mvn clean package
    mvn spring-boot:run
    
  5. 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é nástroj curl, například:

    curl -X GET http://localhost:8080/
    
  6. Pokud chcete otestovat dynamickou konfiguraci, otevřete Azure App Configuration portal přidružený k vaší aplikaci. Vyberte Průzkumníka konfigurace a aktualizujte hodnotu zobrazeného klíče, například:

    Klíč Hodnota
    /application/config.message Hello – Aktualizováno
  7. Aktualizujte klíč sentinelu, který jste vytvořili dříve, na novou hodnotu. Tato změna aktivuje aplikaci tak, aby po prodloužení intervalu aktualizace obnovuje všechny klíče konfigurace.

    Klíč Hodnota
    Sentinel 2
  8. Aktualizujte stránku prohlížeče, aby se nová zpráva zobrazí.

Další kroky

V tomto kurzu jste své aplikaci Spring Boot povolili dynamicky aktualizovat nastavení konfigurace z App Configuration. Informace o použití spravované identity Azure ke zjednodušení přístupu k App Configuration najdete v dalším kurzu.