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" />