2012-08-02 20 views
24

Sto usando la primavera 3 con PropertyPlaceholderConfigurator.come definire la proprietà non obbligatoria in primavera?

Il mio codice proprietà si presenta come la seguente:

@Configuration 
public class MyProps { 

    @Value("${prop1}") 
    public String prop1; 

    ... 
} 

Se io non ho un prop1 nel mio file .properties la molla non riesce a inizializzare è contesto.

La domanda è: come posso definire che questa proprietà non sia obbligatoria? qualche annotazione, configurazione?

risposta

50

Si potrebbe utilizzare un valore predefinito:

@Value("${prop1:}") 
public String prop1; 

e molla inietterà una stringa vuota se la proprietà non è definita. La sintassi è ${property:defaultValue}.

+24

puoi anche impostare valori null: @Value ("$ {prop1: # {null}}") – kieste

8

non sono sicuro se è possibile fare una sola proprietà facoltativa ma sicuramente si può forzare il segnaposto di proprietà di ignorare le proprietà irrisolti:

<context:property-placeholder ignore-unresolvable="true" ... /> 
+0

In questo caso tutte le proprietà non saranno obbligatorie, ma desidero che solo alcune proprietà selezionate siano facoltative e il resto sia obbligatorio. Posso farlo con alcune annotazioni? – Julias

+0

puoi scrivere un segnaposto di proprietà separato per quello – Ajeetkumar

Problemi correlati