Kita tahu bahwa fungsi konfigurasi otomatis boot pegas dapat menentukan konfigurasi pegas mana yang harus digunakan dan mana yang tidak boleh digunakan sesuai dengan situasi yang berbeda. Misalnya:
Bagaimana ini dicapai? Alasannya adalah bahwa ia menggunakan konfigurasi bersyarat Spring, yang memungkinkan konfigurasi ada di aplikasi, tetapi konfigurasi ini diabaikan sebelum kondisi spesifik tertentu dipenuhi.
Untuk mengimplementasikan konfigurasi bersyarat, kita perlu menggunakan anotasi bersyarat @kondisional. Selanjutnya, mari kita tulis contoh kecil untuk mengalami cara kerja @conditional.
1. @Conditional Contoh kecil
Kita tahu bahwa perintah untuk menampilkan daftar di Windows adalah DIR, sedangkan perintah untuk menampilkan daftar di sistem Linux adalah LS. Berdasarkan konfigurasi bersyarat, kami dapat mencapai nilai yang berbeda di bawah sistem operasi yang berbeda.
1. Definisi Kondisi Penilaian
1.) Kondisi keputusan di bawah Windows
/** * Menerapkan antarmuka kondisi musim semi, dan mengganti metode kecocokan (), dan mengembalikan true jika sistem operasi adalah windows * */kelas publik WindowsCondition mengimplementasikan kondisi {@Override public boolean cocok (conditionContext Context, getPeMetadata metadata) {return context.getEnvironment (). }}2.) Kondisi keputusan di bawah Linux
/** * Menerapkan antarmuka kondisi musim semi, dan mengganti metode kecocokan (), dan mengembalikan true jika sistem operasi adalah linux * */kelas publik LinuxCondition mengimplementasikan kondisi {@override public boolean kecocokan (conditionContext conduction, getSpropor ("getspropor (" getS. "oLACHOLOME (". " }}2. Kelas kacang di bawah sistem yang berbeda
1.) Antarmuka
antarmuka publik ListService {public String showListLine ();}2.) Kelas kacang di bawah Windows
Public Class WindowsListService mengimplementasikan ListService {@Override public string showListLine () {return "dir"; }}3.) Kelas kacang di bawah Linux
LinuxListService kelas publik mengimplementasikan ListService {@Override public string showListLine () {return "ls"; }}3. Kelas Konfigurasi
@ConfigurationPublic Class ConditionConfig { / *** Lulus anotasi @conditional, dan kembalikan instance WindowsListService jika memenuhi kondisi Windows** / @bean @conditional (WindowsCondition.class) ListService WindonWsListService () {return New WindowsListService (); } / *** Lulus anotasi @conditional, dan kembalikan instance LinuxListService jika memenuhi kondisi Linux** / @bean @conditional (linuxcondition.class) LinuxLervice LinuxListService () {return new LinuxListService (); }}4. Kelas Uji
kelas publik conditionTest {public static void main (string [] args) {annotationconfigapplicationContext context = new AnnotationConfigApplicationContext (conditionConfig.class); ListService ListService = Context.getBean (ListService.class); System.out .println (context.getEnvironment (). GetProperty ("os.name") + "Perintah daftar di bawah sistem adalah:" + listService.showlistline ()); }}5. Jalankan kelas uji, karena saya di sistem Windows 7, hasilnya
Perintah daftar di bawah sistem Windows 7 adalah: dir
Jika milik Anda ada di Linux, hasilnya akan
Perintah daftar di bawah sistem Linux adalah: ls
2. Konfigurasi bersyarat dari boot pegas
Dalam proyek Spring Boot, akan ada paket JAR yang disebut Spring-Boot-Autoconfigure
Konfigurasi bersyarat diimplementasikan dalam toples ini. Ini menggunakan anotasi bersyarat berikut, yang dimulai dengan @conditional:
Selanjutnya, mari kita lihat kolom kode sumber:
Ambil jdbctemplateAutoconfiguration sebagai contoh, itu berisi kode ini:
@Bean @primary @conditionAlonmissingbean (jdbcoperations.class) publik jdbctemplate jdbctemplate () {return new jdbctemplate (this.datasource); }Kacang JDBCTEMPLATE akan diinisialisasi hanya ketika tidak ada operasi JDBC (jika Anda melihat kode sumber JDBCtemplate, Anda akan menemukan bahwa kelas JDBCtemplate mengimplementasikan antarmuka operasi JDBC).
Berdasarkan konten di atas, kami dapat membaca kode sumber yang terkait dengan konfigurasi otomatis.
Meringkaskan
Di atas adalah konfigurasi otomatis @conditional dan Spring Boot di Spring Boot diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!