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 na spring-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-webautomatická aktualizace se aktivuje na základě aktivity, konkrétně spring web .ServletRequestHandledEvent ServletRequestHandledEvent Pokud se neaktivuje, spring-cloud-azure-appconfiguration-config-webautomatická 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 AppConfigurationRefreshnástroj , který lze použít ke kontrole, jestli platnost mezipaměti vypršela a jestli vypršela, aktivuje se aktualizace.

  1. 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's refreshConfigurations() 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.

  2. Aktualizace bootstrap.properties pro povolení aktualizace

    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
    
  3. 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é.

  4. Vyberte Použít.

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

    mvn clean package
    mvn spring-boot:run
    
  6. 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/
    
  7. 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
  8. 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
  9. 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>
  1. Aktualizace bootstrap.properties pro povolení aktualizace

    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
    
  2. 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é.

  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é curl , například:

    curl -X GET http://localhost:8080/
    
  6. 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
  7. 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
  8. 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.