Oktatóanyag: Dinamikus konfiguráció használata Java Spring-alkalmazásban

App Configuration két kódtára van a Springhez.

  • spring-cloud-azure-appconfiguration-config Spring Boot-ra van szükség, és függőséget vesz fel a függvényhez spring-cloud-context.
  • spring-cloud-azure-appconfiguration-config-web a Spring Web és a Spring Boot együtt szükséges, és támogatja a konfigurációfrissítés automatikus ellenőrzését is.

Mindkét kódtár támogatja a manuális aktiválást a frissített konfigurációs értékek ellenőrzéséhez.

A frissítés lehetővé teszi a konfigurációs értékek frissítését anélkül, hogy újra kellene indítania az alkalmazást, bár az összes bab @RefreshScope újra létrejön. Ellenőrzi a konfigurált eseményindítók módosításait, beleértve a metaadatokat is. Alapértelmezés szerint a módosítások ellenőrzése és a frissítési időköz közötti minimális idő 30 másodpercre van állítva.

spring-cloud-azure-appconfiguration-config-webAz automatikus frissítés a tevékenység, pontosabban a Spring Web ServletRequestHandledEventtevékenységén alapul. ServletRequestHandledEvent Ha a nem aktiválódik, az automatikus frissítés akkor sem indítja el a frissítést, spring-cloud-azure-appconfiguration-config-webha a gyorsítótár lejárati ideje lejárt.

Manuális frissítés használata

A manuális frissítés használatához először használjon App Configuration használó Spring Boot-alkalmazást, például a létrehozott alkalmazást a Spring Boot App Configuration című rövid útmutatójának követésével.

App Configuration elérhetővé teszi a parancsotAppConfigurationRefresh, amellyel ellenőrizheti, hogy a gyorsítótár lejárt-e, és ha lejárt, egy frissítés aktiválódik.

  1. Frissítse a HelloControllert a használatára 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();
        }
    }
    

    AppConfigurationRefreshAz 's refreshConfigurations() egy Mono igaz értéket ad vissza, ha egy frissítés aktiválódott, és hamis, ha nem. A hamis azt jelenti, hogy a gyorsítótár lejárati ideje nem járt le, nem történt változás, vagy egy másik szál éppen frissítéseket keres.

  2. Frissítés bootstrap.properties a frissítés engedélyezéséhez

    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. Nyissa meg az Azure Portalt, és keresse meg az alkalmazáshoz társított App Configuration erőforrást. Válassza a Configuration Explorer elemet az Operations (Műveletek) területen, és hozzon létre egy új kulcs-érték párot a + Kulcs-érték létrehozása> lehetőség kiválasztásával a következő paraméterek hozzáadásához:

    Kulcs Érték
    sentinel 1

    Egyelőre hagyja üresen a Címke és tartalomtípus elemet .

  4. Kattintson az Alkalmaz gombra.

  5. Állítsa össze a Spring Boot-alkalmazást a Mavennel, és futtassa.

    mvn clean package
    mvn spring-boot:run
    
  6. Nyisson meg egy böngészőablakot, és lépjen az URL-címre: http://localhost:8080. Ekkor megjelenik a kulcshoz társított üzenet.

    A curl használatával tesztelheti az alkalmazást, például:

    curl -X GET http://localhost:8080/
    
  7. A dinamikus konfiguráció teszteléséhez nyissa meg az alkalmazáshoz társított Azure App Configuration portált. Válassza a Configuration Explorer lehetőséget, és frissítse a megjelenített kulcs értékét, például:

    Kulcs Érték
    /application/config.message Hello – Frissítve
  8. Frissítse a korábban létrehozott sentinel kulcsot egy új értékre. Ez a módosítás aktiválja az alkalmazást az összes konfigurációs kulcs frissítésére a frissítési időköz leteltét követően.

    Kulcs Érték
    sentinel 2
  9. Frissítse kétszer a böngészőlapot az új üzenet megjelenítéséhez. Az első alkalommal aktiválja a frissítést, a második betölti a módosításokat.

Megjegyzés

A kódtár csak a frissítési időköz leteltét követő módosításokat ellenőrzi, ha az időszak nem telt el, akkor nem jelenik meg változás, meg kell várnia, amíg az időszak letelik, majd elindítja a frissítési ellenőrzést.

Automatikus frissítés használata

Az automatikus frissítés használatához először egy App Configuration használó Spring Boot-alkalmazással kezdje, például a létrehozott alkalmazást a Spring Boot App Configuration című rövid útmutatójának követésével.

Ezután nyissa meg a pom.xml fájlt egy szövegszerkesztőben, és adjon hozzá egy fájlt <dependency>spring-cloud-azure-appconfiguration-config-web a következő kód használatához.

Spring Boot

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
    <version>5.8.0</version>
</dependency>
  1. Frissítés bootstrap.properties a frissítés engedélyezéséhez

    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. Nyissa meg az Azure Portalt, és keresse meg az alkalmazáshoz társított App Configuration erőforrást. Válassza a Configuration Explorer elemet az Operations (Műveletek) területen, és hozzon létre egy új kulcs-érték párot a + Kulcs-érték létrehozása> lehetőség kiválasztásával a következő paraméterek hozzáadásához:

    Kulcs Érték
    sentinel 1

    Egyelőre hagyja üresen a Címke és tartalomtípus elemet .

  3. Kattintson az Alkalmaz gombra.

  4. Állítsa össze a Spring Boot-alkalmazást a Mavennel, és futtassa.

    mvn clean package
    mvn spring-boot:run
    
  5. Nyisson meg egy böngészőablakot, és lépjen az URL-címre: http://localhost:8080. Ekkor megjelenik a kulcshoz társított üzenet.

    A curl használatával tesztelheti az alkalmazást, például:

    curl -X GET http://localhost:8080/
    
  6. A dinamikus konfiguráció teszteléséhez nyissa meg az alkalmazáshoz társított Azure App Configuration portált. Válassza a Configuration Explorer lehetőséget, és frissítse a megjelenített kulcs értékét, például:

    Kulcs Érték
    /application/config.message Hello – Frissítve
  7. Frissítse a korábban létrehozott sentinel kulcsot egy új értékre. Ez a módosítás aktiválja az alkalmazást az összes konfigurációs kulcs frissítésére a frissítési időköz leteltét követően.

    Kulcs Érték
    sentinel 2
  8. Frissítse kétszer a böngészőlapot az új üzenet megjelenítéséhez. Az első alkalommal aktiválja a frissítést, a második betölti a módosításokat, mivel az első kérés az eredeti hatókör használatával tér vissza.

Megjegyzés

A kódtár csak a frissítési időköz leteltét követően ellenőrzi a módosításokat. Ha a frissítési időköz nem telt el, akkor nem ellenőrzi a módosításokat, meg kell várnia, amíg az időköz átmegy, majd aktiválja a frissítési ellenőrzést.

Következő lépések

Ebben az oktatóanyagban engedélyezte a Spring Boot-alkalmazást, hogy dinamikusan frissítse a konfigurációs beállításokat App Configuration. További kérdésekért tekintse meg a referenciadokumentációt, amely tartalmazza a Spring Cloud Azure App Configuration-kódtár működésével kapcsolatos összes részletet. A következő oktatóanyagból megtudhatja, hogyan használhat azure-beli felügyelt identitást a App Configuration való hozzáférés egyszerűsítéséhez.