Spring BeanFactory提供了类似pico container中自动装配组件依赖的对象的功能。自动装配能应用在每个组件上,可以为一些组件定义自动装配,而另一些组件则不使用。
SHAPE \* MERGEFORMAT
|
|
按照bean定义的名称自动装配 |
SHAPE \* MERGEFORMAT
|
这个Bean将被注入到dao中 |
SHAPE \* MERGEFORMAT
|
|
按照bean定义的类型自动装配 |
SHAPE \* MERGEFORMAT
|
这个Bean将被注入到dao中 |
SHAPE \* MERGEFORMAT
|
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dao' defined in class path resource [research/spring/beanfactory/ch3/context.xml]: Unsatisfied dependency expressed through bean property 'database': There are 2 beans of type [class research.spring.beanfactory.ch3.Database] for autowire by type. There should have been 1 to be able to autowire property 'database' of bean 'dao'...
SHAPE \* MERGEFORMAT
|
|
按照bean定义的类型自动装配 |
constructor装配方式不关心构造参数的顺序,无论构造函数参数的顺序如何Spring都会按类型匹配到正确的合作者进行注入。
适当的使用自动装配比如byName方式的装配,是有一些好处的。比如我们在一些特定的范围里可以借助byName自动装配的功能来实现“以惯例来代替配置”的框架。