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;
}