autowire:这个属性控制Bean是否自动装配,如果使用这个属性,Spring会自动使用下列方式之一来培植依赖性:
no:(默认)必须在XML文件中使用<ref>元素定义Bean的引用
如配置1:
byName:按属性名进行自动装配,如果一个Bean暴露了一个abc属性,也就是说他有一个setAbc()方法,Spring将尝试在当前工厂中查找叫做abc的Bean定义,然后用它来设置abc属性
如配置2:
配置2等效配置1
byType:如果BeanFactory中正好有一个同属性类型一样的Bean,就自动装配这个属性。如果没有找到对应类型,将会抛出org.springframework.beans.factory.UnsatisfiedDependencyException 比如类Computer有个属性printer,类型为Printer,那么,指定其autowire属性为byType后,Spring IoC容器会查找Class属性为Printer的bean,使用Seter方法为其注入。
constructor:与byType类似,不过是应用与构造函数的参数,即它不是使用Seter方法注入,而是使用构造子注入。
autodetect:default:由上级标签<beans>的default-autowire属性确定. 通过对Bean类的检查来选择constructor或者byType
一般开发都用的是NO,这样易于维护,出了错也很好查找