对于构造子的自动装配,手册描述如下:
constructor | 与byType的方式类似,不同之处在于它应用于构造器参数。如果在容器中没有找到与构造器参数类型一致的bean,那么将会抛出异常。 |
我在想如果javabean里面含有多个构造子,spring的装配结果会如何:
待注入的javabean:
spring注入配置:
测试结果:
1、系统打印出3。
2、如果把第三个构造子屏蔽,则系统打印出1。
结论:
按照测试结果推测,spring会对比所有构造子的依赖满足情况,优先调用能满足最多依赖的构造子,在相同情况下,则调用位置靠前的构造子。
以上仅为本人根据结果的推测,没有深入到源代码的研究,如果有更透彻的意见,请不吝赐教,谢谢。