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 aspring-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-web
Az automatikus frissítés a tevékenység, pontosabban a Spring Web ServletRequestHandledEvent
tevé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-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 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 AppConfigurationRefresh
a gyorsítótár lejártát. Ha lejárt, a rendszer elindítja a frissítést.
A használathoz
AppConfigurationRefresh
frissí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(); } }
AppConfigurationRefresh
Az 'srefreshConfigurations()
aMono
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.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
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 .
Válassza az Alkalmazás lehetőséget.
Á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 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/
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 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. 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>
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 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 .
Válassza az Alkalmazás lehetőséget.
Á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 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/
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 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.
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.