Öğretici: Java Spring uygulamasında dinamik yapılandırmayı kullanma
Uygulama Yapılandırması Spring için iki kitaplığı vardır.
spring-cloud-azure-appconfiguration-config
Spring Boot gerektirir ve üzerindespring-cloud-context
bir bağımlılık alır.spring-cloud-azure-appconfiguration-config-web
Spring Boot ile birlikte Spring Web gerektirir ve ayrıca yapılandırma yenilemesinin otomatik denetimi için destek ekler.
Her iki kitaplık da yenilenen yapılandırma değerlerini denetlemek için el ile tetiklenmeyi destekler.
Yenileme, uygulamanızı yeniden başlatmak zorunda kalmadan yapılandırma değerlerinizi güncelleştirmenize olanak tanır ancak içindeki tüm çekirdeklerin @RefreshScope
yeniden oluşturulmasına neden olur. Meta veriler de dahil olmak üzere yapılandırılmış tetikleyicilerde yapılan değişiklikleri denetler. Varsayılan olarak, değişiklik denetimleriyle yenileme aralığı arasındaki en düşük süre 30 saniye olarak ayarlanır.
spring-cloud-azure-appconfiguration-config-web
'nin otomatik yenilemesi, özellikle Spring Web'in ServletRequestHandledEvent
etkinliğine göre tetiklenir. tetiklenmemişse ServletRequestHandledEvent
, spring-cloud-azure-appconfiguration-config-web
önbellek süre sonu süresi dolsa bile otomatik yenileme işlemi yenilemeyi tetiklemez.
El ile yenilemeyi kullanma
El ile yenilemeyi kullanmak için, Uygulama Yapılandırması için Spring Boot hızlı başlangıcını izleyerek oluşturduğunuz uygulama gibi Uygulama Yapılandırması kullanan bir Spring Boot uygulamasıyla başlayın.
Uygulama Yapılandırması, önbelleğin süresinin dolup dolmadığını denetlemek için kullanılabilen öğesini kullanıma sunarAppConfigurationRefresh
. Süresi dolduysa yenileme tetiklenir.
kullanmak
AppConfigurationRefresh
için HelloController'ı güncelleştirin.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()
, yenilemeMono
tetiklendiyse true, tetiklenmediyse false değerini döndürür. False, önbellek süre sonu süresinin dolmadığı, herhangi bir değişiklik yapılmadığı veya başka bir iş parçacığının şu anda yenilemeyi denetlediği anlamına gelir.Yenilemeyi etkinleştirmek için güncelleştirin
bootstrap.properties
: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
Azure Portal'ı açın ve uygulamanızla ilişkilendirilmiş Uygulama Yapılandırması kaynağınıza gidin. İşlemler'in altında Yapılandırma Gezgini'ni seçin ve aşağıdaki parametreleri eklemek için + Anahtar-değer Oluştur'u>seçerek yeni bir anahtar-değer çifti oluşturun:
Anahtar Değer sentinel 1 Etiket ve İçerik Türü'nü şimdilik boş bırakın.
Uygula’yı seçin.
Spring Boot uygulamanızı Maven’le oluşturun ve çalıştırın.
mvn clean package mvn spring-boot:run
Bir tarayıcı penceresi açın ve URL'ye gidin:
http://localhost:8080
. Anahtarınızla ilişkili iletiyi görürsünüz.Uygulamanızı test etmek için curl de kullanabilirsiniz, örneğin:
curl -X GET http://localhost:8080/
Dinamik yapılandırmayı test etmek için uygulamanızla ilişkilendirilmiş Azure Uygulaması Yapılandırma portalını açın. Yapılandırma Gezgini'ni seçin ve görüntülenen anahtarınızın değerini güncelleştirin, örneğin:
Anahtar Değer /application/config.message Merhaba - Güncelleştirildi Daha önce oluşturduğunuz sentinel anahtarını yeni bir değere güncelleştirin. Bu değişiklik, yenileme aralığı geçtikten sonra uygulamanın tüm yapılandırma anahtarlarını yenilemesini tetikler.
Anahtar Değer sentinel 2 Görüntülenen yeni iletiyi görmek için tarayıcı sayfasını iki kez yenileyin. Yenilemeyi ilk kez tetiklerken, ikincisi değişiklikleri yükler.
Not
Kitaplık yalnızca yenileme aralığı geçtikten sonra üzerindeki değişiklikleri denetler. Dönem geçmezse hiçbir değişiklik görüntülenmez. Dönemin geçmesini bekleyin ve yenileme denetimini tetikleyin.
Otomatik yenilemeyi kullanma
Otomatik yenilemeyi kullanmak için, Uygulama Yapılandırması için Spring Boot hızlı başlangıcını izleyerek oluşturduğunuz uygulama gibi Uygulama Yapılandırması kullanan bir Spring Boot uygulamasıyla başlayın.
Ardından, pom.xml dosyasını bir metin düzenleyicisinde açın ve aşağıdaki kodu kullanarak için spring-cloud-azure-appconfiguration-config-web
ekleyin<dependency>
.
Spring Boot
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
<version>5.8.0</version>
</dependency>
Yenilemeyi etkinleştirmek için güncelleştir
bootstrap.properties
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
Azure Portal'ı açın ve uygulamanızla ilişkilendirilmiş Uygulama Yapılandırması kaynağınıza gidin. İşlemler'in altında Yapılandırma Gezgini'ni seçin ve aşağıdaki parametreleri eklemek için + Anahtar-değer Oluştur'u>seçerek yeni bir anahtar-değer çifti oluşturun:
Anahtar Değer sentinel 1 Etiket ve İçerik Türü'nü şimdilik boş bırakın.
Uygula’yı seçin.
Spring Boot uygulamanızı Maven’le oluşturun ve çalıştırın.
mvn clean package mvn spring-boot:run
Bir tarayıcı penceresi açın ve URL'ye gidin:
http://localhost:8080
. Artık anahtarınızla ilişkilendirilmiş iletiyi görürsünüz.Uygulamanızı test etmek için curl de kullanabilirsiniz, örneğin:
curl -X GET http://localhost:8080/
Dinamik yapılandırmayı test etmek için uygulamanızla ilişkilendirilmiş Azure Uygulaması Yapılandırma portalını açın. Yapılandırma Gezgini'ni seçin ve görüntülenen anahtarınızın değerini güncelleştirin, örneğin:
Anahtar Değer /application/config.message Merhaba - Güncelleştirildi Daha önce oluşturduğunuz sentinel anahtarını yeni bir değere güncelleştirin. Bu değişiklik, yenileme aralığı geçtikten sonra uygulamanın tüm yapılandırma anahtarlarını yenilemesini tetikler.
Anahtar Değer sentinel 2 Görüntülenen yeni iletiyi görmek için tarayıcı sayfasını iki kez yenileyin. yenilemeyi ilk kez tetikler, ikinci istek özgün kapsamı kullanarak döndürdüğünden değişiklikleri yükler.
Not
Kitaplık yalnızca yenileme aralığı geçtikten sonra üzerindeki değişiklikleri denetler. Yenileme aralığı geçirilmemişse değişiklikleri denetlemez. Aralığın geçmesini bekleyin ve yenileme denetimini tetikleyin.
Sonraki adımlar
Bu öğreticide Spring Boot uygulamanızın yapılandırma ayarlarını Uygulama Yapılandırması dinamik olarak yenilemesini etkinleştirmişsiniz. Daha fazla soru için başvuru belgelerine bakın; Spring Cloud Azure Uygulaması Configuration kitaplığının nasıl çalıştığıyla ilgili tüm ayrıntılara sahiptir. Azure yönetilen kimliğini kullanarak Uygulama Yapılandırması erişimini kolaylaştırmayı öğrenmek için sonraki öğreticiye geçin.