2012-08-02 15 views
24

Estoy usando el resorte 3 con PropertyPlaceholderConfigurator.cómo definir la propiedad no obligatoria en primavera?

Mi código propiedades que parece ser de la siguiente manera:

@Configuration 
public class MyProps { 

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

    ... 
} 

Si no tengo una prop1 en mi archivo .properties la primavera no puede inicializar su contexto.

La pregunta es ¿cómo puedo definir que esta propiedad no es obligatoria? alguna anotación, configuración?

Respuesta

50

Se puede usar un valor por defecto:

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

y el resorte inyectará una cadena vacía si la propiedad no está definida. La sintaxis es ${property:defaultValue}.

+24

también puede establecer valores nulos: @Value ("$ {prop1: # {null}}") – kieste

8

No estoy seguro de si es posible hacer una sola propiedad opcional pero seguro que puedo forzar el marcador de posición propiedad de ignorar propiedades sin resolver:

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

En este caso, todas las propiedades no serán obligatorias, pero solo quiero que algunas propiedades seleccionadas sean opcionales y el resto obligatorio. ¿Puedo hacer esto con alguna anotación? – Julias

+0

puede escribir un marcador de propiedad por separado para ese – Ajeetkumar

Cuestiones relacionadas