que mvc introduccion funciona dependencias configurar configuracion conceptos como arquitectura spring properties null default-value

mvc - Especifique el valor de propiedad predeterminado como NULL en Spring



que es spring mvc y como funciona (4)

Quiero definir el valor de propiedad predeterminado en el archivo de configuración Spring XML. Quiero que este valor predeterminado sea null .

Algo como esto:

... <ctx:property-placeholder location="file://${configuration.location}" ignore-unresolvable="true" order="2" properties-ref="defaultConfiguration"/> <util:properties id="defaultConfiguration"> <prop key="email.username" > <null /> </prop> <prop key="email.password"> <null /> </prop> </util:properties> ...

Esto no funciona ¿Es posible definir valores predeterminados null para las propiedades en la configuración Spring XML?


Puede intentar usar Spring EL.

<prop key="email.username">#{null}</prop>


Es mejor usar Spring EL de tal manera

<property name="password" value="${email.password:#{null}}"/>

comprueba si se especifica email.password y lo establece en null (no "null" String) de lo contrario


echa un vistazo a PropertyPlaceholderConfigurer # setNullValue (String)

Se afirma que:

Por defecto, no se define dicho valor nulo. Esto significa que no hay forma de expresar nulo como valor de propiedad a menos que mapee explícitamente un valor correspondiente

Así que simplemente defina la cadena "nula" para mapear el valor nulo en su PropertyPlaceholderConfigurer:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="nullValue" value="null"/> <property name="location" value="testing.properties"/> </bean>

Ahora puede usarlo en sus archivos de propiedades:

db.connectionCustomizerClass=null db.idleConnectionTestPeriod=21600


Parece que puedes hacer lo siguiente:

@Value("${some.value:null}") private String someValue;

y

@Bean public static PropertySourcesPlaceholderConfigurer propertyConfig() { PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer = new PropertySourcesPlaceholderConfigurer(); propertySourcesPlaceholderConfigurer.setNullValue("null"); return propertySourcesPlaceholderConfigurer; }