依赖注入(DI):说白了就是对于属性的赋值。
基于xml的依赖注入有两种:
第一种是基于setter方法的属性注入:<property name="" value(ref)=""></property>。
第二种是基于构造方法的属性注入:<construct-arg name="" value(ref)=""></property>
上面两种无论是基于setter的bean属性注入,还是基于构造方法的bean属性注入。都是比较的麻烦的。都需要写很多行的代码到xml里。byName也好,byType也罢,都需要写到xml里。[而且对bean的要求也比较高,setter注入的话,你的bean要设置set方法。构造注入的话,你的bean要有有参构造函数才行]
第三种属性依赖的注入方式叫做基于注解的依赖注入。
它会自动扫描程序里的所有的bean对象。然后把对应的bean对象赋值给属性。[不需要你写byName或者byType,也不需要你指定对应的bean的名称。当你创建该类的实例化对象(bean)的时候,它会自动的帮你完成属性对应的对象(即另一个bean)的查找和赋值。]
对比:这样,bean和bean之间的依赖关系更好的得到了解决?其实我觉得基于xml好像bean与bean(或者说类与类)之间的关系更一目了然一些。但是确实xml的依赖关系写起来很浪费时间。基于注解的依赖关系查找是目前的主流。
感想:唉,怎么才能既能一目了然地在xml里看到bean与bean之间的依赖关系,又能在代码里基于注解的方式在代码里看到每个属性所依赖的bean。