Öğretici: Java Spring uygulamasında dinamik yapılandırma kullanma

Uygulama Yapılandırması'nın Spring için iki kitaplığı vardır. azure-spring-cloud-appconfiguration-config , Spring Boot gerektirir ve bağımlılığını spring-cloud-context alır. azure-spring-cloud-appconfiguration-config-web Spring Web'i ve Spring Boot. Her iki kitaplık da yenilenen yapılandırma değerlerini kontrol etmek için el ile tetiklemeyi destekler. azure-spring-cloud-appconfiguration-config-web ayrıca, yapılandırma yenilemesi için otomatik denetim desteği de ekler.

Yenileme, uygulamanızı yeniden başlatmak zorunda kalmadan yapılandırma değerlerinizi yenilemenize olanak sağlar, ancak bu, içinde tüm çekirdeklerin @RefreshScope yeniden oluşturulmasına neden olur. İstemci kitaplığı, yapılandırma deposuna çok fazla çağrıyı önlemek için şu anda yüklü olan yapılandırmaların karma kimliğini önbelleğe almaktadır. Yenileme işlemi, değer yapılandırma depolamada değişse bile önbelleğe alınan değerin süresi dolana kadar değeri güncelleştirmez. Her istek için varsayılan süre sonu 30 saniyedir. Gerekirse geçersiz kılınabilir.

azure-spring-cloud-appconfiguration-config-web'nin otomatik yenilemesi özellikle Spring Web'in etkinliğine göre ServletRequestHandledEvent tetiklenir. tetiklenmezse, önbellek süre sonu süresi dolmuş olsa bile otomatik yenileme ServletRequestHandledEvent azure-spring-cloud-appconfiguration-config-web bir yenileme tetiklemez.

El ile yenilemeyi kullanma

Uygulama Yapılandırması, önbelleğin süresinin dolması ve süresinin dolması yenilemeyi tetiklemek için AppConfigurationRefresh kullanılmaktadır.

import com.azure.spring.cloud.config.AppConfigurationRefresh;

...

@Autowired
private AppConfigurationRefresh appConfigurationRefresh;

...

public void myConfigurationRefreshCheck() {
    Future<Boolean> triggeredRefresh = appConfigurationRefresh.refreshConfigurations();
}

AppConfigurationRefresh``refreshConfigurations()'s, Future bir yenileme tetiklendiysa true, tetiklenmezse false döndürür. False, önbellek süre sonu süresinin dolmamış, değişiklik olmadığını veya başka bir iş parçacığının şu anda yenilemeyi kontrol ediyor olduğu anlamına gelir.

Otomatik yenilemeyi kullanma

Otomatik yenilemeyi kullanmak için, uygulama Spring Boot hızlı başlangıcını takip eden uygulama gibi Uygulama Yapılandırması'nın Spring Boot bir uygulama ile çalışmaya başlayabilirsiniz.

Ardından, pom.xml dosyasını bir metin düzenleyicisinde açın ve aşağıdaki kodu <dependency> kullanmak için bir azure-spring-cloud-appconfiguration-config-web ekleyin.

Spring Boot

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>azure-spring-cloud-appconfiguration-config-web</artifactId>
    <version>2.0.0</version>
</dependency>

Not

Eski bağımlılıklar için de destek gerekirse önceki kitaplığımıza bakın.

  1. Yenilemeyi bootstrap.properties etkinleştirmek için güncelleştirin

    spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true
    spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinel
    
  2. Azure Portal'a gidin ve uygulamayla ilişkilendirilmiş Uygulama Yapılandırma kaynağınıza gidin. Aşağıdaki parametreleri eklemek için İşlemler'in altında Yapılandırma Gezgini'ni seçin ve + Anahtar-değer Oluştur'a seçerek yeni bir > anahtar-değer çifti oluşturun:

    Anahtar Değer
    Sentinel 1

    Etiket ve İçerik Türü'leri şimdilik boş bırakın.

  3. Uygula’yı seçin.

  4. Spring Boot uygulamanızı Maven’le oluşturun ve çalıştırın.

    mvn clean package
    mvn spring-boot:run
    
  5. Bir tarayıcı penceresi açın ve URL'ye gidin: http://localhost:8080 . Anahtarınızla ilişkili iletiyi alırsınız.

    Curl kullanarak da uygulamalarınızı test etmek için kullanabilirsiniz, örneğin:

    curl -X GET http://localhost:8080/
    
  6. Dinamik yapılandırmayı test etmek için Azure Uygulama Yapılandırması ilişkili portalını açın. Yapılandırma Gezgini'ni seçin ve görüntülenen anahtarın değerini güncelleştirin, örneğin:

    Anahtar Değer
    /application/config.message Hello - Güncelleştirildi
  7. Daha önce oluşturduğunuz Sentinel anahtarını yeni bir değere güncelleştirin. Bu değişiklik, yenileme aralığı geçilene kadar uygulamanın tüm yapılandırma anahtarlarını yenilemesini tetikler.

    Anahtar Değer
    Sentinel 2
  8. Görüntülenen yeni iletiyi görmek için tarayıcı sayfasını yenileyin.

Sonraki adımlar

Bu öğreticide, uygulama Spring Boot yapılandırma ayarlarını uygulama yapılandırmasından dinamik olarak yenilemek için etkinleştirdiniz. Azure yönetilen kimliğini kullanarak Uygulama Yapılandırmasına erişimi kolaylaştırma hakkında bilgi edinmek için sonraki öğreticiye devam edin.