Öğretici: Java Spring uygulamasında dinamik yapılandırma 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 olarak denetlenebilir.
Her iki kitaplık da yenilenen yapılandırma değerlerini denetlemek için el ile tetiklenmesini destekler.
Yenileme, uygulamanızı yeniden başlatmanıza gerek kalmadan yapılandırma değerlerinizi güncelleştirmenizi sağlar, 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 denetimleri ve 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. bir ServletRequestHandledEvent
tetiklenmezse, spring-cloud-azure-appconfiguration-config-web
önbellek süre sonu süresi dolsa bile otomatik yenileme bir yenileme 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ı, AppConfigurationRefresh
önbelleğin süresinin dolup dolmadığını ve süresinin dolup dolmadığını denetlemek için kullanılabilen bir yenileme tetiklenir.
HelloController'ı kullanacak
AppConfigurationRefresh
şekilde 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()
, yenileme tetiklendiğinde true değerini, tetiklenmediyse false değerini döndürürMono
. False, önbellek süre sonu süresinin dolmadığı, değişiklik olmadığı veya başka bir iş parçacığının yenilemeyi denetlediği anlamına gelir.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 + Anahtar Değeri Oluştur'u> seçerek yeni biranahtar-değer çifti oluşturarak aşağıdaki parametreleri ekleyin:
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şkili Azure Uygulama Yapılandırması 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, ikincisi değişiklikleri yükler.
Not
Kitaplık yalnızca yenileme aralığı geçtikten sonra değişiklik olup olmadığını denetler; süre geçmezse hiçbir değişiklik görülmez, dönemin geçmesini beklemeniz ve yenileme denetimini tetiklemeniz gerekir.
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 + Anahtar Değeri Oluştur'u> seçerek yeni biranahtar-değer çifti oluşturarak aşağıdaki parametreleri ekleyin:
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şkili Azure Uygulama Yapılandırması 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. İlk istek özgün kapsamı kullanarak döndürdüğünden yenileme ilk kez tetiklenir, ikinci değişiklik yüklenir.
Not
Kitaplık yalnızca yenileme aralığı geçtikten sonra üzerindeki değişiklikleri denetler. Yenileme aralığı geçirilmediyse değişiklikleri denetlemez, aralığın geçmesini beklemeniz ve yenileme denetimini tetiklemeniz gerekir.
Sonraki adımlar
Bu öğreticide Spring Boot uygulamanızın yapılandırma ayarlarını Uygulama Yapılandırması dinamik olarak yenilemesini sağladınız. Daha fazla soru için başvuru belgelerine bakın; Spring Cloud Azure Uygulama Yapılandırması 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şimi kolaylaştırmayı öğrenmek için sonraki öğreticiye geçin.