Brug af Spring @Value med standardindstillinger
1. Oversigt
Forårets @Værdi annotation giver en bekvem måde at indsprøjte egenskabsværdier i komponenter på. Det er også ret nyttigt at give fornuftige misligholdelser i tilfælde, hvor en ejendom muligvis ikke er til stede.
Det er det, vi vil fokusere på i denne artikel - hvordan man angiver en standardværdi for @Værdi Forårsnotering. For en mere detaljeret hurtig guide til @Værdi, se artiklen her.
2. Standardindstillinger for streng
Lad os se på den grundlæggende syntaks til indstilling af en standardværdi for en Snor ejendom:
@Value ("$ {some.key: min standardværdi}") privat strengstrengWithDefaultValue;
Hvis noget. nøgle kan ikke løses, så strengWithDefaultValue indstilles til standardværdien for “min standardværdi ”.
På samme måde kan vi indstille en nul-længde Snor som standardværdi:
@Value ("$ {some.key:})" privat strengstrengWithBlankDefaultValue;
3. Primitiver
For at indstille en standardværdi for primitive typer som f.eks boolsk og int, bruger vi den bogstavelige værdi:
@Value ("$ {some.key: true}") privat boolsk booleanWithDefaultValue;
@Value ("$ {some.key: 42}") privat int intWithDefaultValue;
Hvis vi ville, kunne vi i stedet bruge primitive indpakninger ved at ændre typerne til Boolsk og Heltal.
4. Arrays
Vi kan også indsprøjte en komma-adskilt liste over værdier i en matrix:
@Value ("$ {some.key: one, two, three}") privat String [] stringArrayWithDefaults; @Value ("$ {some.key: 1,2,3}") privat int [] intArrayWithDefaults;
I det første eksempel ovenfor er værdierne “en", “to"og “tre" injiceres som standardindstillinger stringArrayWithDefaults.
I det andet eksempel er værdierne 1, 2 og 3 injiceres som standardindstillinger intArrayWithDefaults.
5. Brug af SpEL
Vi kan også bruge Spring Expression Language (SpEL) til at angive et udtryk og en standard.
I eksemplet nedenfor forventer vi some.system.key skal indstilles som en systemegenskab, og hvis den ikke er indstillet, vil vi bruge “min standardværdi for systemegenskaber ” som standard:
@Value ("# {systemProperties ['some.key']?: 'My default system property value'}") privat String spelWithDefaultValue;
6. Konklusion
I denne hurtige artikel så vi på, hvordan vi kan indstille en standardværdi for en ejendom, hvis værdi vi gerne vil have injiceret ved hjælp af Spring's @Værdi kommentar.
Som normalt kan alle kodeeksempler, der bruges i denne artikel, findes i GitHub-projektet.