Självstudie: Använda dynamisk konfiguration i en Java Spring-app

App Configuration har två bibliotek för Spring. azure-spring-cloud-appconfiguration-config kräver Spring Boot och är beroende av spring-cloud-context . azure-spring-cloud-appconfiguration-config-web kräver Spring Web tillsammans med Spring Boot. Båda biblioteken stöder manuell utlösare för att söka efter uppdaterade konfigurationsvärden. azure-spring-cloud-appconfiguration-config-web lägger också till stöd för automatisk kontroll av konfigurationsuppdatering.

Med Uppdatera kan du uppdatera dina konfigurationsvärden utan att behöva starta om programmet, men det gör att alla beans @RefreshScope i återskapas. Klientbiblioteket cachelagrar ett hash-ID för de inlästa konfigurationerna för att undvika för många anrop till konfigurationslagret. Uppdateringsåtgärden uppdaterar inte värdet förrän det cachelagrade värdet har upphört att gälla, även om värdet har ändrats i konfigurationslagret. Standardförfallotiden för varje begäran är 30 sekunder. Det kan åsidosättas om det behövs.

azure-spring-cloud-appconfiguration-config-webDen automatiska uppdateringen utlöses baserat på aktivitet, särskilt Spring Webs ServletRequestHandledEvent . Om en inte utlöses utlöser inte den automatiska uppdateringen en uppdatering även ServletRequestHandledEvent azure-spring-cloud-appconfiguration-config-web om cacheminnets förfallotid har gått ut.

Använd manuell uppdatering

App Configuration exponeras som kan användas för att kontrollera om cachen har upphört att gälla och om den har AppConfigurationRefresh upphört att gälla utlöser en uppdatering.

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

...

@Autowired
private AppConfigurationRefresh appConfigurationRefresh;

...

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

AppConfigurationRefresh's refreshConfigurations() returnerar Future ett som är sant om en uppdatering har utlösts och falskt om inte. Falskt innebär antingen att cachens förfallotid inte har upphört att gälla, att det inte har ändrats eller att en annan tråd för närvarande söker efter en uppdatering.

Använda automatisk uppdatering

Om du vill använda automatisk uppdatering börjar du med en Spring Boot-app som använder App Configuration, till exempel den app som du skapar genom att följa Spring Boot snabbstarten för App Configuration.

Öppna sedan filen pom.xml i en textredigerare och lägg till en <dependency> för med hjälp av följande azure-spring-cloud-appconfiguration-config-web kod.

Spring Boot

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

Anteckning

Om du behöver stöd för äldre beroenden kan du se vårt tidigare bibliotek.

  1. Uppdatera bootstrap.properties för att aktivera uppdatering

    spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true
    spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinel
    
  2. Öppna Azure Portal och gå till den resurs App Configuration som är associerad med ditt program. Välj Configuration Explorer under Åtgärder och skapa ett nytt nyckel/värde-par genom att välja + Skapa > nyckelvärde för att lägga till följande parametrar:

    Tangent Värde
    Sentinel 1

    Lämna Etikett och Innehållstyp tomma för tillfället.

  3. Välj Använd.

  4. Skapa Spring Boot-appen med Maven och kör den:

    mvn clean package
    mvn spring-boot:run
    
  5. Öppna ett webbläsarfönster och gå till URL:en: http://localhost:8080 . Du ser meddelandet som är associerat med din nyckel.

    Du kan också använda curl för att testa ditt program, till exempel:

    curl -X GET http://localhost:8080/
    
  6. Om du vill testa dynamisk konfiguration öppnar du Azure App Configuration-portalen som är associerad med ditt program. Välj Configuration Explorer och uppdatera värdet för den nyckel som visas, till exempel:

    Tangent Värde
    /application/config.message Hej – uppdaterad
  7. Uppdatera sentinel-nyckeln som du skapade tidigare till ett nytt värde. Den här ändringen utlöser att programmet uppdaterar alla konfigurationsnycklar när uppdateringsintervallet har passerat.

    Tangent Värde
    Sentinel 2
  8. Uppdatera webbläsarsidan för att se det nya meddelandet.

Nästa steg

I den här självstudien har du aktiverat Spring Boot för att dynamiskt uppdatera konfigurationsinställningarna från App Configuration. Om du vill lära dig hur du använder en hanterad Azure-identitet för att effektivisera åtkomsten App Configuration kan du fortsätta till nästa självstudie.