省略>在spring框架中当有默认参数值时
我有以下简单的构造函数:
public SimpleClass(Type1 arg1, int interval = 1000)
{ ... }
我使用 spring 框架初始化它,如下所示,而不使用 autowire:
<object name="SimpleClass" type="..., ...">
<constructor-arg name="arg1" ref="..." />
<constructor-arg name="interval" value="1000" />
</object>
我的问题是:因为我在实际构造函数中为第二个参数定义了默认值,我可以将其保留在 spring 配置文件之外吗?或者如果您不使用 autowire
,spring 是否需要对所有参数进行显式声明?因为我使用的是 spring,所以在这里保留默认参数值有什么意义吗?
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, can 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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当使用 xml 配置时,这不起作用(使用 Spring.NET 1.3.1 进行测试)。
使用 CodeConfig 时它可能确实有效,但我还没有尝试过它出来了。
最快的解决方法是简单地在类中引入第二个构造函数:
这总是有效的。
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:
That will always work.