Megosztás a következőn keresztül:


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

Az Alkalmazáskonfiguráció két kódtárat biztosít a Springhez.

  • spring-cloud-azure-appconfiguration-config Spring Boot-ra van szükség, és függőséget vesz fel a spring-cloud-context.
  • spring-cloud-azure-appconfiguration-config-web a Spring Web és a Spring Boot használatát igényli, valamint támogatja a konfigurációfrissítés automatikus ellenőrzését.

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ége alapján aktiválódik. Ha egy ServletRequestHandledEvent 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 kezdje az alkalmazáskonfigurációt használó Spring Boot-alkalmazással, például a létrehozott alkalmazással az alkalmazáskonfiguráció spring boot rövid útmutatóját követve.

Az alkalmazáskonfiguráció elérhetővé teszi AppConfigurationRefresha gyorsítótár lejártát. Ha lejárt, a rendszer elindítja a frissítést.

  1. A használathoz AppConfigurationRefreshfrissítse a HelloControllert.

    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() a Mono true (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 alkalmazáskonfigurációs erőforrást. Válassza a Konfigurációkezelőt a 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 0

    Egyelőre hagyja üresen a címkét és a tartalomtípust .

  4. Válassza az Alkalmazás lehetőséget.

  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 nyissa meg az URL-címet: 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-alkalmazás konfigurációs portált. Válassza a Konfigurációkezelőt, é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. Amikor először aktiválja a frissítést, a második betölti a módosításokat.

Feljegyzé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 az időszak nem telt el, akkor nem jelenik meg változás. Várjon, amíg az időszak eltelik, majd indítsa el a frissítési ellenőrzést.

Automatikus frissítés használata

Az automatikus frissítés használatához kezdje az alkalmazáskonfigurációt használó Spring Boot-alkalmazással, például a létrehozott alkalmazással az alkalmazáskonfiguráció spring boot rövid útmutatóját követve.

Ezután nyissa meg a pom.xml fájlt egy szövegszerkesztőben, és adjon hozzá egy <dependency> fájlt 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 alkalmazáskonfigurációs erőforrást. Válassza a Konfigurációkezelőt a 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 0

    Egyelőre hagyja üresen a címkét és a tartalomtípust .

  3. Válassza az Alkalmazás lehetőséget.

  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 nyissa meg az URL-címet: 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-alkalmazás konfigurációs portált. Válassza a Konfigurációkezelőt, é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.

Feljegyzé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. Várjon, amíg az időköz átmegy, majd indítsa el a frissítési ellenőrzést.

Következő lépések

Ebben az oktatóanyagban engedélyezte, hogy a Spring Boot-alkalmazás dinamikusan frissítse a konfigurációs beállításokat az Alkalmazáskonfigurációból. További kérdésekért tekintse meg a referenciadokumentációt, amely tartalmazza a Spring Cloud Azure-alkalmazás Konfigurációs kódtár működésével kapcsolatos összes részletet. Ha szeretné megtudni, hogyan használhat azure-beli felügyelt identitást az alkalmazáskonfigurációhoz való hozzáférés gördülékenyebbé tételéhez, folytassa a következő oktatóanyagban.