Menggunakan Spring @Value dengan Default

1. Ikhtisar

Anotasi @Value Spring menyediakan cara mudah untuk memasukkan nilai properti ke dalam komponen. Ini juga sangat berguna untuk memberikan default yang masuk akal untuk kasus di mana properti mungkin tidak ada .

Itulah yang akan kita fokuskan dalam artikel ini - cara menentukan nilai default untuk anotasi @Value Spring. Untuk panduan cepat yang lebih mendetail tentang @Value , lihat artikelnya di sini.

2. Default String

Mari kita lihat sintaks dasar untuk menyetel nilai default untuk properti String :

@Value("${some.key:my default value}") private String stringWithDefaultValue; 

Jika some.key tidak dapat diselesaikan, maka stringW ithDefaultValue akan disetel ke nilai default " nilai default saya" .

Demikian pula, kita dapat menetapkan String panjang-nol sebagai nilai default:

@Value("${some.key:})" private String stringWithBlankDefaultValue;

3. Primitif

Untuk menyetel nilai default untuk tipe primitif seperti boolean dan int , kami menggunakan nilai literal:

@Value("${some.key:true}") private boolean booleanWithDefaultValue;
@Value("${some.key:42}") private int intWithDefaultValue; 

Jika mau, kita bisa menggunakan pembungkus primitif dengan mengubah tipe menjadi Boolean dan Integer .

4. Array

Kami juga dapat memasukkan daftar nilai yang dipisahkan koma ke dalam array:

@Value("${some.key:one,two,three}") private String[] stringArrayWithDefaults; @Value("${some.key:1,2,3}") private int[] intArrayWithDefaults;

Pada contoh pertama di atas, nilai " satu" , " dua" , dan " tiga" dimasukkan sebagai default ke dalam stringArrayWithDefaults .

Dalam contoh kedua, nilai 1, 2, dan 3 dimasukkan sebagai default ke intArrayWithDefaults .

5. Menggunakan SpEL

Kita juga bisa menggunakan Spring Expression Language (SpEL) untuk menentukan ekspresi dan default.

Dalam contoh di bawah ini, kami mengharapkan some.system.key disetel sebagai properti sistem, dan jika tidak disetel, kami ingin menggunakan " nilai properti sistem default saya" sebagai default:

@Value("#{systemProperties['some.key'] ?: 'my default system property value'}") private String spelWithDefaultValue;

6. Kesimpulan

Dalam artikel singkat ini, kami melihat bagaimana kami dapat menetapkan nilai default untuk properti yang nilainya ingin kami masukkan menggunakan anotasi @Value Spring .

Seperti biasa, semua contoh kode yang digunakan dalam artikel ini dapat ditemukan di proyek GitHub.