自动装配用于“引用类型(如:对象)”的依赖注入,不能对“简单类型”进行操作。
- 使用按类型装配(byType)必须相同类型的bean唯一
- 使用按名称装配(byName)必须指定名称的bean
- 自动装配优先级 低于 setter注入与构造器注入,同时出现时会导致自动装配失效。
01:按“类型”装配,连 id 都可以不起(推荐)
<!--按“类型”装配,连id都可以不起-->
<bean class="com.itheima.dao.impl.BookDaoImpl"/>
<!--autowire属性:开启自动装配,通常使用按类型装配-->
<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl" autowire="byType"/>
//BookServiceImpl
public class BookServiceImpl implements BookService{
private BookDao bookDao;
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
}
02:按“名称”装配,id 和 setXXX 要对应(有耦合,不推荐)
<!--这里的 id 和 setBookDao 对应-->
<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/>
<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl" autowire="byName"/>