依赖注入的方式
1.属性注入
注意点:(1)属性注入要求Bean提供一个默认的构造函数;
(2)为需要注入的属性提供对应的setter方法.Spring 只会检查Bean中是否有对应的Setter方法,至于Bean中是否有对应的属性变量则不作要求。
2.构造函数注入
构造函数注入的几种方式:
(1) 按类型匹配入参
(2)按索引匹配入参
(3)联合使用参数和索引匹配入参
构造函数入参方式可能造成的问题
循环依赖问题:
问题产生的根本是:Spring容器能顺利实例化以构造函数方式注入Bean有一个前提:Bean构造函数入参引用的对象必须已经准备就绪。由于这个机制的限制,如果两个Bean都采用这种方式注入并且都通过构造函数入参引用对方,就会出现类似线程死锁的循环依赖的问题。