Zelfstudie: Dynamische configuratie in een Java Spring-app gebruiken
App Configuration heeft twee bibliotheken voor Spring.
spring-cloud-azure-appconfiguration-config
vereist Spring Boot en heeft een afhankelijkheid vanspring-cloud-context
.spring-cloud-azure-appconfiguration-config-web
vereist Spring Web samen met Spring Boot en voegt ook ondersteuning toe voor het automatisch controleren van het vernieuwen van de configuratie.
Beide bibliotheken ondersteunen handmatige triggering om te controleren op vernieuwde configuratiewaarden.
Met Vernieuwen kunt u uw configuratiewaarden bijwerken zonder dat u de toepassing opnieuw hoeft te starten, hoewel alle beans in de @RefreshScope
opnieuw worden gemaakt. Er wordt gecontroleerd op wijzigingen in geconfigureerde triggers, inclusief metagegevens. Standaard is de minimale hoeveelheid tijd tussen het controleren op wijzigingen( vernieuwingsinterval) ingesteld op 30 seconden.
spring-cloud-azure-appconfiguration-config-web
's automatische vernieuwing wordt geactiveerd op basis van activiteit, met name spring web.ServletRequestHandledEvent
Als een ServletRequestHandledEvent
niet wordt geactiveerd, activeert de automatische vernieuwing geen vernieuwing, spring-cloud-azure-appconfiguration-config-web
zelfs niet als de verlooptijd van de cache is verstreken.
Handmatig vernieuwen gebruiken
Als u handmatig vernieuwen wilt gebruiken, begint u met een Spring Boot-app die gebruikmaakt van App Configuration, zoals de app die u maakt door de Spring Boot-quickstart voor App Configuration te volgen.
App Configuration wordt weergegevenAppConfigurationRefresh
. Dit kan worden gebruikt om te controleren of de cache is verlopen en of deze is verlopen, wordt een vernieuwing geactiveerd.
Werk HelloController bij om te gebruiken
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
'srefreshConfigurations()
retourneert eenMono
die waar is als een vernieuwing is geactiveerd en onwaar als dat niet het geval is. Onwaar betekent dat de verlooptijd van de cache niet is verlopen, dat er geen wijziging is aangebracht of dat een andere thread momenteel controleert op een vernieuwing.Bijwerken
bootstrap.properties
om vernieuwen in te schakelenspring.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
Open Azure Portal en navigeer naar uw App Configuration resource die aan uw toepassing is gekoppeld. Selecteer Configuration Explorer onder Bewerkingen en maak een nieuw sleutel-waardepaar door +Sleutel-waardemaken> te selecteren om de volgende parameters toe te voegen:
Sleutel Waarde Sentinel 1 Laat Label en Inhoudstype nog even leeg.
Selecteer Toepassen.
Maak uw Spring Boot-app met Maven en voer deze uit.
mvn clean package mvn spring-boot:run
Open een browservenster en ga naar de URL:
http://localhost:8080
. U ziet het bericht dat bij uw sleutel hoort.U kunt ook curl gebruiken om uw toepassing te testen, bijvoorbeeld:
curl -X GET http://localhost:8080/
Als u de dynamische configuratie wilt testen, opent u de Azure App Configuration-portal die bij uw toepassing hoort. Selecteer Configuratie Explorer en werk de waarde van uw weergegeven sleutel bij, bijvoorbeeld:
Sleutel Waarde /application/config.message Hallo - bijgewerkt Werk de Sentinel-sleutel die u eerder hebt gemaakt bij naar een nieuwe waarde. Deze wijziging activeert de toepassing om alle configuratiesleutels te vernieuwen zodra het vernieuwingsinterval is verstreken.
Sleutel Waarde Sentinel 2 Vernieuw de browserpagina twee keer om het nieuwe bericht weer te geven. De eerste keer wordt de vernieuwing geactiveerd, de tweede laadt de wijzigingen.
Notitie
De bibliotheek controleert alleen op wijzigingen in de nadat het vernieuwingsinterval is verstreken. Als de periode niet is verstreken, wordt er geen wijziging gezien. U moet wachten tot de periode is verstreken en vervolgens de vernieuwingscontrole activeren.
Automatisch vernieuwen gebruiken
Als u automatisch vernieuwen wilt gebruiken, begint u met een Spring Boot-app die gebruikmaakt van App Configuration, zoals de app die u hebt gemaakt door de Spring Boot-quickstart voor App Configuration te volgen.
Open vervolgens het pom.xml-bestand in een teksteditor en voeg een <dependency>
toe voor spring-cloud-azure-appconfiguration-config-web
met behulp van de volgende code.
Spring Boot
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
<version>5.8.0</version>
</dependency>
Bijwerken
bootstrap.properties
om vernieuwen in te schakelenspring.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
Open Azure Portal en navigeer naar uw App Configuration resource die aan uw toepassing is gekoppeld. Selecteer Configuration Explorer onder Bewerkingen en maak een nieuw sleutel-waardepaar door +Sleutel-waardemaken> te selecteren om de volgende parameters toe te voegen:
Sleutel Waarde Sentinel 1 Laat Label en Inhoudstype nog even leeg.
Selecteer Toepassen.
Maak uw Spring Boot-app met Maven en voer deze uit.
mvn clean package mvn spring-boot:run
Open een browservenster en ga naar de URL:
http://localhost:8080
. U ziet het bericht dat bij uw sleutel hoort.U kunt ook curl gebruiken om uw toepassing te testen, bijvoorbeeld:
curl -X GET http://localhost:8080/
Als u de dynamische configuratie wilt testen, opent u de Azure App Configuration-portal die bij uw toepassing hoort. Selecteer Configuratie Explorer en werk de waarde van uw weergegeven sleutel bij, bijvoorbeeld:
Sleutel Waarde /application/config.message Hallo - bijgewerkt Werk de Sentinel-sleutel die u eerder hebt gemaakt bij naar een nieuwe waarde. Deze wijziging activeert de toepassing om alle configuratiesleutels te vernieuwen zodra het vernieuwingsinterval is verstreken.
Sleutel Waarde Sentinel 2 Vernieuw de browserpagina twee keer om het nieuwe bericht weer te geven. De eerste keer wordt de vernieuwing geactiveerd, de tweede laadt de wijzigingen, terwijl de eerste aanvraag wordt geretourneerd met behulp van het oorspronkelijke bereik.
Notitie
De bibliotheek controleert alleen op wijzigingen nadat het vernieuwingsinterval is verstreken. Als het vernieuwingsinterval niet is verstreken, wordt er niet gecontroleerd op wijzigingen. U moet wachten tot het interval is verstreken en vervolgens de vernieuwingscontrole activeren.
Volgende stappen
In deze zelfstudie hebt u uw Spring Boot-app ingeschakeld voor het dynamisch vernieuwen van configuratie-instellingen vanuit App Configuration. Zie de naslagdocumentatie voor meer vragen. Hierin vindt u alle details over de werking van de Spring Cloud Azure App Configuration-bibliotheek. Als u wilt weten hoe u een door Azure beheerde identiteit kunt gebruiken om de toegang tot App Configuration te stroomlijnen, gaat u verder met de volgende zelfstudie.