为了账号安全,请及时绑定邮箱和手机立即绑定

在用 default-autowire的时候值为byname和bytype时 不能添加构造方法 在用constractor时可以用set方法 坑啊 这是为什么

这是为毛完全蒙逼了

正在回答

2 回答

构造方法就是用constractor自动装配   

byname和bytype只是装配类型不同 不能用于构造方法

以下来自百度

byName 根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自
动装配。例如,在bean定义中将 autowire设置为by name,而该bean包含master属性(同时提供
setMaster(..)方法),Spring就会查找名为master的bean定义,并用它来装配给master属性。


byType 如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配。如果存在多个该类型的
bean,那么将会抛出异常,并指出不能使用byType方式进行自动装配。若没有找到相匹配的bean,
则什么事都不发生,属性也不会被设置。如果你不希望这样,那么可以通过设置 
dependency-check="objects"让Spring抛出异常。


0 回复 有任何疑惑可以回复我~
#1

丶子非鱼 提问者

非常感谢!
2017-05-22 回复 有任何疑惑可以回复我~

在用 default-autowire的时候值为byname和bytype时  不是不能添加构造方法,你应该是没有添加无参的构造方法,所以才报错的。当你添加了有参的构造方法的时候,系统就不会为你添加默认的无参的构造方法了。而byName和byType的时候是需要无参构造方法的。


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在用 default-autowire的时候值为byname和bytype时 不能添加构造方法 在用constractor时可以用set方法 坑啊 这是为什么

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信