c-namespace AND Constructor-arg



<bean> element with constructor Argument
<bean id="user1" class="com.data.User">
<constructor-arg ref="address"/>
</bean>

When you use above bean element in XML, then it will create User bean, with address bean as argument in the constructor.

c-namespace
  • you can achieve ahove using c-namespace.
  • <bean id="user1" class="com.data.User" c:addr-ref="address" />
  • here c: is the c-namespace prefix
  • addr: is the constructor argument name
  • ref: Indicated we are injecting the reference
  • "address": is the actual reference which is being injected in the constructor "addr" argument

If there are multiple arguments then, you can go with following syntax.
<bean id="user1" class="com.data.User" c:_0-ref="address"/>

But same syntax you can use like given below if you have only single argument
<bean id="user1" class="com.data.User" c:_-ref="address"/>

Also you can specify multiple argument in constructor by their name
<bean id="pserson" class="com.data.Person" c:name="raj" c:city="anand" />