weixin_42300719 2010-04-08 12:08
浏览 1339
已采纳

spring使用构造函数注入时必须要有默认构造函数?

<bean id="foo1" class="com.wl.test.Foo">
<constructor-arg index="1">
<value>张军</value>
</constructor-arg>
<constructor-arg index="0">
<value>23</value>
</constructor-arg>
</bean>


   在Foo类里,
public Foo(int id, String name) {
this.id = id;
this.name = name;
}


   如果不给出默认构造方法的话,就会报错:Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.wl.test.Foo]: No default constructor found;
  • 写回答

4条回答 默认 最新

  • iteye_566 2010-04-08 12:17
    关注

    在Java中,如果你自己写了一个构造器,那么Java机制将不会提供给你一个默认的构造器,除非你的类中无任何构造器时它才会提供默认的,但是Spring注入时,不管你是否添加属性的注入,它都要去寻找默认构造器,为的是一旦你不注入属性了,也能找到默认构造器,所以,规范的Java写法是:如果你自己写了构造器,那就把默认的也写出来。。。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料