Leaving out <constructor-arg/> in spring framework when there's a default parameter value
I have the following simple constructor:
public SimpleClass(Type1 arg1, int interval = 1000)
{ ... }
I'm initialising this using the spring framework as follows, without using autowire
:
<object name="SimpleClass" type="..., ...">
<constructor-arg name="arg1" ref="..." />
<constructor-arg name="interval" value="1000" />
</object>
My question is: Since I'm defining a default value for the second parameter in the actual constructor, c开发者_运维百科an I leave it out of the spring config file, or does spring need an explicit declaration for all parameters if you don't use autowire
? Is there any point in leaving in a default parameter value here, since I'm using spring?
That does not work when using xml configuration (tested it with Spring.NET 1.3.1).
It probably does work when using CodeConfig, but I haven't tried it out.
Quickest work-around would be to simply introduce a second constructor in your class:
Class SimpleClass
{
public SimpleClass(Type1 arg1) : this(arg1, 1000)
{}
public SimpleClass(Type1 arg1, int interval = 1000)
{
// ...
}
}
That will always work.
精彩评论