Zelfstudie: Dynamische configuratie in een Java Spring-app gebruiken
App Configuration heeft twee bibliotheken voor Spring. azure-spring-cloud-appconfiguration-config vereist Spring Boot en is afhankelijk van spring-cloud-context . azure-spring-cloud-appconfiguration-config-web vereist Spring Web samen met Spring Boot. Beide bibliotheken ondersteunen handmatige triggers om te controleren op vernieuwde configuratiewaarden. azure-spring-cloud-appconfiguration-config-web voegt ook ondersteuning toe voor het automatisch controleren van configuratievernieuwing.
Met Vernieuwen kunt u uw configuratiewaarden vernieuwen zonder dat u de toepassing opnieuw moet starten, maar dit zorgt ervoor dat alle beans in de @RefreshScope opnieuw worden gemaakt. De clientbibliotheek cachet een hash-id van de momenteel geladen configuraties om te veel aanroepen naar het configuratie-opslaggeheugen te voorkomen. De waarde wordt niet door de vernieuwingsbewerking bijgewerkt, zelfs niet wanneer de waarde in de configuratieopslag is gewijzigd. De standaardvervaltijd voor elke aanvraag is dertig seconden. Deze kan zo nodig worden overschreven.
azure-spring-cloud-appconfiguration-config-web's automatische vernieuwing wordt geactiveerd op basis van activiteit, met name de van Spring ServletRequestHandledEvent Web. Als een niet wordt geactiveerd, wordt met automatische vernieuwing geen vernieuwing geactiveerd, zelfs niet als de verlooptijd van de ServletRequestHandledEvent azure-spring-cloud-appconfiguration-config-web cache is verlopen.
Handmatig vernieuwen gebruiken
App Configuration die kan worden gebruikt om te controleren of de cache is verlopen en of deze AppConfigurationRefresh is verlopen, activeert een vernieuwing.
import com.azure.spring.cloud.config.AppConfigurationRefresh;
...
@Autowired
private AppConfigurationRefresh appConfigurationRefresh;
...
public void myConfigurationRefreshCheck() {
Future<Boolean> triggeredRefresh = appConfigurationRefresh.refreshConfigurations();
}
AppConfigurationRefresh's refreshConfigurations() retourneert Future een 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, er geen wijziging is of dat er momenteel een andere thread wordt gecontroleerd op een vernieuwing.
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 in een teksteditor en voeg een toe voor het gebruik van de volgende <dependency> azure-spring-cloud-appconfiguration-config-web code.
Spring Boot
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>azure-spring-cloud-appconfiguration-config-web</artifactId>
<version>2.0.0</version>
</dependency>
Notitie
Zie onze vorige bibliotheek als u ondersteuning nodig hebt voor oudere afhankelijkheden.
Bijwerken om
bootstrap.propertiesvernieuwen in teschakelenspring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinelOpen De Azure-portal en navigeer naar App Configuration resource die is gekoppeld aan uw toepassing. Selecteer Configuration Explorer onder Bewerkingen en maak een nieuw sleutel-waardepaar door + Sleutelwaarde maken 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:runOpen 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. Door deze wijziging worden alle configuratiesleutels vernieuwd zodra het vernieuwingsinterval is verstreken.
Sleutel Waarde Sentinel 2 Vernieuw de browserpagina om het nieuwe bericht te zien.
Volgende stappen
In deze zelfstudie hebt u uw Spring Boot-app ingeschakeld voor het dynamisch vernieuwen van configuratie-instellingen vanuit App Configuration. 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.