DI入门案例

  1. 基于IoC管理Bean
  2. Service中使用new形式创建的Dao对象是否保留?(否)
  3. Service中需要的Dao对象如何进入到Service中?(提供方法)
  4. Service与Dao间的关系如何描述?(配置)
# BookServiceImpl.java
public class BookServiceImpl implements bookService{
    // 删除业务层中使用new的方式创建的dao对象
    private BookDao bookDao = new BookDaoImpl();

    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }

    // 提供对应的set方法
    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }
}
# applicationContext.xml


<bean id="bookDao1" class="com.xxx.dao.impl.BookDaoImpl"/>

<bean id="bookService" class="com.xxx.service.impl.BookServiceImpl">
    # 配置service与dao的关系
    # property标签表示配置当前bean的属性
    # name属性表示配置哪一个具体的属性
    # ref属性表示参照哪一个bean
    <property name="bookDao" ref="bookDao1"/>
</bean>