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ényhezspring-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-web
Az automatikus frissítés a tevékenység, pontosabban a Spring Web ServletRequestHandledEvent
tevé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-web
ha 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.
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(); } }
AppConfigurationRefresh
Az 'srefreshConfigurations()
egyMono
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.Frissítés
bootstrap.properties
a frissítés engedélyezéséhezspring.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
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 .
Kattintson az Alkalmaz gombra.
Állítsa össze a Spring Boot-alkalmazást a Mavennel, és futtassa.
mvn clean package mvn spring-boot:run
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/
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 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 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>
Frissítés
bootstrap.properties
a frissítés engedélyezéséhezspring.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
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 .
Kattintson az Alkalmaz gombra.
Állítsa össze a Spring Boot-alkalmazást a Mavennel, és futtassa.
mvn clean package mvn spring-boot:run
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/
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 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 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.