使用了@Autowired的注解方式,这种默认按类型查找符合的bean注入
view plaincopy to clipboardprint?
01.@Autowired private PersonDao personDao;
@Autowired private PersonDao personDao;
使用@Qualifier注明bean名称注入
view plaincopy to clipboardprint?
01.@Autowired @Qualifier("personDao") private PersonDao personDao;
@Autowired @Qualifier("personDao") private PersonDao personDao;
还可以添加required属性,在没找到bean的情况下,如果required为false,则注入null,required为true,则报错。
view plaincopy to clipboardprint?
01.@Autowired(required=true) @Qualifier("personDao") private PersonDao personDao;
@Autowired(required=true) @Qualifier("personDao") private PersonDao personDao;
自动装配:
通过bean标签的autowire属性来配置,有5种值
no 不使用自动装配,必须通过ref元素指定依赖,默认设置。
byName 根据属性名自动装配。此选项将检查容器并根据名字查找与
属性完全一致的bean,并将其与属性自动装配。
byType 如果容器中存在一个与指定属性类型相同的bean,那么将与
该属性自动装配;如果存在多个该类型bean,那么抛出异
常,并指出不能使用byType方式进行自动装配;如果没有找
到相匹配的bean,则什么事都不发生,也可以通过设置
dependency-check="objects"让Spring抛出异常。
constructor 与byType方式类似,不同之处在于它应用于构造器参数。如
果容器中没有找到与构造器参数类型一致的bean,那么抛出
异常。
autodetect 通过bean类的自省机制(introspection)来决定是使用
constructor还是byType方式进行自动装配。如果发现默认的
构造器,那么将使用byType方式。
end 完毕!