Tutorial: Menggunakan konfigurasi dinamis di aplikasi Java Spring
Azure App Configuration memiliki dua pustaka untuk Spring.
spring-cloud-azure-appconfiguration-config
membutuhkan Spring Boot dan mengambil dependensi padaspring-cloud-context
.spring-cloud-azure-appconfiguration-config-web
memerlukan Spring Web disertai Spring Boot, dan juga menambahkan dukungan untuk pemeriksaan otomatis refresh konfigurasi.
Kedua pustaka mendukung pemicu manual untuk memeriksa nilai konfigurasi yang direfresh.
Refresh memungkinkan Anda memperbarui nilai konfigurasi tanpa harus menghidupkan ulang aplikasi Anda, meskipun menyebabkan semua buncis dalam @RefreshScope
dibuat ulang. Ini memeriksa setiap perubahan pada pemicu yang dikonfigurasi, termasuk metadata. Secara default, jumlah waktu minimum antara pemeriksaan perubahan, interval refresh, diatur ke 30 detik.
Refresh otomatis spring-cloud-azure-appconfiguration-config-web
dipicu berdasarkan aktivitas, terutama ServletRequestHandledEvent
Spring Web. ServletRequestHandledEvent
Jika tidak dipicu, spring-cloud-azure-appconfiguration-config-web
refresh otomatis tidak memicu refresh meskipun waktu kedaluwarsa cache telah kedaluwarsa.
Gunakan penyegaran manual
Untuk menggunakan refresh manual, mulai dengan aplikasi Spring Boot yang menggunakan App Configuration, seperti aplikasi yang Anda buat dengan mengikuti Mulai cepat Spring Boot untuk App Configuration.
App Configuration mengekspos AppConfigurationRefresh
, yang dapat digunakan untuk memeriksa apakah cache kedaluwarsa dan apakah kedaluwarsa refresh dipicu.
Perbarui HelloController untuk menggunakan
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(); } }
refreshConfigurations()
AppConfigurationRefresh
mengembalikanMono
benar jika penyegaran telah dipicu, dan salah jika tidak. Salah berarti waktu kedaluwarsa cache belum habis, tidak ada perubahan, atau utas lain saat ini sedang memeriksa penyegaran.Melakukan pembaruan
bootstrap.properties
untuk mengaktifkan refreshspring.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
Buka Portal Microsoft Azure dan buka sumber daya App Configuration yang terkait dengan Aplikasi Anda. Pilih Penjelajah Konfigurasi di bawah Operasi dan buat pasangan kunci-nilai baru dengan memilih +Buat>Nilai-kunci untuk menetapkan parameter berikut:
Kunci Nilai sentinel 1 Biarkan Label dan Jenis Konten kosong untuk saat ini.
Pilih Terapkan.
Bangun aplikasi Spring Boot Anda dengan Maven dan jalankan.
mvn clean package mvn spring-boot:run
Buka jendela browser, dan buka URL:
http://localhost:8080
. Anda akan melihat pesan yang terkait dengan kunci Anda.Anda juga dapat menggunakan curl untuk menguji aplikasi Anda, misalnya:
curl -X GET http://localhost:8080/
Untuk menguji konfigurasi dinamis, buka portal Azure App Configuration yang terkait dengan aplikasi Anda. Pilih Explorer Konfigurasi, dan perbarui nilai kunci Anda yang ditampilkan, misalnya:
Kunci Nilai /application/config.message Halo - Diperbarui Perbarui kunci sentinel yang Anda buat sebelumnya ke nilai baru. Perubahan ini memicu aplikasi untuk me-refresh semua kunci konfigurasi setelah interval refresh berlalu.
Kunci Nilai Sentinel 2 Refresh halaman browser dua kali untuk melihat pesan baru yang ditampilkan. Yang pertama memicu refresh, dan yang kedua memuat perubahan.
Catatan
Pustaka hanya memeriksa perubahan setelah interval refresh berlalu, jika periode belum berlalu, perubahan tidak akan terlihat, Anda harus menunggu hingga periode berlalu, lalu memicu pemeriksaan refresh.
Menggunakan penyegaran otomatis
Untuk menggunakan penyegaran otomatis, mulai dengan aplikasi Spring Boot yang menggunakan Azure App Configuration, seperti aplikasi yang Anda buat dengan mengikuti mulai cepat Spring Boot untuk Azure App Configuration.
Kemudian, buka file pom.xml di editor teks, dan tambahkan <dependency>
untuk spring-cloud-azure-appconfiguration-config-web
menggunakan kode berikut.
Spring Boot
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
<version>5.8.0</version>
</dependency>
Melakukan pembaruan
bootstrap.properties
untuk mengaktifkan refreshspring.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
Buka Portal Microsoft Azure dan buka sumber daya App Configuration yang terkait dengan Aplikasi Anda. Pilih Penjelajah Konfigurasi di bawah Operasi dan buat pasangan kunci-nilai baru dengan memilih +Buat>Nilai-kunci untuk menetapkan parameter berikut:
Kunci Nilai sentinel 1 Biarkan Label dan Jenis Konten kosong untuk saat ini.
Pilih Terapkan.
Bangun aplikasi Spring Boot Anda dengan Maven dan jalankan.
mvn clean package mvn spring-boot:run
Buka jendela browser, dan buka URL:
http://localhost:8080
. Anda akan melihat pesan yang terkait dengan kunci Anda.Anda juga dapat menggunakan curl untuk menguji aplikasi Anda, misalnya:
curl -X GET http://localhost:8080/
Untuk menguji konfigurasi dinamis, buka portal Azure App Configuration yang terkait dengan aplikasi Anda. Pilih Explorer Konfigurasi, dan perbarui nilai kunci Anda yang ditampilkan, misalnya:
Kunci Nilai /application/config.message Halo - Diperbarui Perbarui kunci sentinel yang Anda buat sebelumnya ke nilai baru. Perubahan ini memicu aplikasi untuk me-refresh semua kunci konfigurasi setelah interval refresh berlalu.
Kunci Nilai Sentinel 2 Refresh halaman browser dua kali untuk melihat pesan baru yang ditampilkan. Yang pertama memicu refresh, yang kedua memuat perubahan, karena permintaan pertama ditampilkan menggunakan cakupan asli.
Catatan
Pustaka hanya memeriksa perubahan setelah interval refresh berlalu. Jika interval refresh belum berlalu, perubahan tidak akan diperiksa, Anda harus menunggu hingga interval berlalu, lalu memicu pemeriksaan refresh.
Langkah berikutnya
Dalam tutorial ini, Anda mengaktifkan aplikasi Spring Boot Anda untuk secara dinamis merefresh pengaturan konfigurasi dari Azure App Configuration. Untuk pertanyaan lebih lanjut, lihat dokumentasi referensi, dokumentasi ini berisi semua detail tentang cara kerja pustaka Spring Cloud Azure App Configuration. Untuk mempelajari cara menggunakan identitas terkelola Azure untuk mempermudah akses ke Azure App Configuration, lanjutkan ke tutorial berikutnya.