1.简介
Spring会在上下文中自动寻找并且自动装配。
在Spring中有三种装配方式:
- 在xml显示的配置
- 在Java中显示配置
- 隐式的自动装配
2.实现(隐式的自动装配)
需求:在Person类中调用Cat和Dog的show方法。
运行结果
分析:上面的代码存在一个弊端,如下图所示,调用的代码编写重复,每次加个属性我们都需要去配置xml文件的属性。
这时我们可以使用基于隐式的自动装配可以有效解决上面的问题。
但是byName自动装配存在一定的局限性,就是定义依赖的属性名称要和xml配置的bean的名称一样。不一致的话则会抛出下面的异常,原因就是没有找到相对应的bean实例。
自动装配也可以按照类型来装配:byType
但是byType也是有一种弊端,当容器存在多个同样类型的bean时,会报错。
总结: byName需要保证bean的id和类属性名称一致,byType需要保证spring容器内class类型的唯一性。