How to inject null value in Spring
In Spring, you can uses this special <null /> tag to pass a “null” value into constructor argument or property.
1. Constructor Argument
The wrong way to inject a null into constructor argument, a really common mistake, and nice try :)
<bean id="defaultMongoTypeMapper1" class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper"> <constructor-arg name="typeKey" value="null" /> </bean>
Correct way.
<bean id="defaultMongoTypeMapper" class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper"> <constructor-arg name="typeKey"> <null /> </constructor-arg> </bean>
2. Property
The wrong way to inject null value into property.
<bean id="myConverter" class="com.mkyong.convert.MoneyConverter"> <property name="typeMapper" value="null" /> </bean>
Correct way.
<bean id="myConverter" class="com.mkyong.convert.MoneyConverter"> <property name="typeMapper"><null/></property> </bean>
Tags : spring

Hi, Pretty nice article. I have one question though.
The article explains the wrong way and correct way to pass null values, but it does not explain “why” a particular approach is wrong.
Why kind of issues I might face going with the wrong approach.
Basically, I want to understand why passing null as “null” is wrong.
Thanks!
Nishant, because null is interpreted, as String with value “null”.