自动装入:容器自动装配相关bean
一般不使用自动装配
<bean id="" class="" autowire=""/>
autowire属性值如下:
模式 说明
no 不使用自动装配,必须通过ref元素指定依赖,默认设置。
byName 根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,
并将其与属性自动装配(属性名为bean的set方法中的bean名称)
byType 如果容器中存在一个与指定属性类型相同的bean,那么将与
该属性自动装配;如果存在多个该类型bean,那么抛出异
常,并指出不能使用byType方式进行自动装配;如果没有找
到相匹配的bean,则什么事都不发生,也可以通过设置
dependency-check="objects"让Spring抛出异常。
constructor 与byType方式类似,不同之处在于它应用于构造器参数。如
果容器中没有找到与构造器参数类型一致的bean,那么抛出异常。
autodetect 通过bean类的自省机制(introspection)来决定是使用
constructor还是byType方式进行自动装配。如果发现默认的
构造器,那么将使用byType方式。
实例:daoImp.java中部分代码
private Dao dao;
public void setDao(Dao dao) {
this.dao = dao;
}
这里需要给注解的属性加上set方法
<bean id="dao" class="com.qh.daoImp.daoImp"></bean>
<bean id="serviceImp" class="com.qh.serviceImp.ServiceImp" autowire="byType"></bean>
在实际开发中,不建议用自动装配,因为它会产生未知情况,我们无法预见最终的装配结果