入门案例思路分析
(1)要想实现依赖注入,必须要基于IOC管理Bean
DI的入门案例要依赖于前面IOC的入门案例
(2)Service中使用new形式创建的Dao对象是否保留?
需要删除掉,最终要使用IOC容器中的bean对象
(3)Service中需要的Dao对象如何进入到Service中?
在Service中提供方法,让Spring的IOC容器可以通过该方法传入bean对象
(4)Service与Dao间的关系如何描述?
使用配置文件
入门案例代码实现
需求:基于IOC入门案例,在BookServiceImpl类中删除new对象的方式,使用Spring的DI完成 Dao层的注入
1.删除业务层中使用new的方式创建的dao对象
2.在业务层提供BookDao的setter方法
3.在配置文件中添加依赖注入的配置
4.运行程序调用方法
步骤1: 去除代码中的new
在BookServiceImpl类中,删除业务层中使用new的方式创建的dao对象
public class BookServiceImpl implements BookService {
    //删除业务层中使用new的方式创建的dao对象
    private BookDao bookDao;
    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
} 
  
步骤2:为属性提供setter方法
在BookServiceImpl类中,为BookDao提供setter方法
1 public class BookServiceImpl implements BookService {
2     //删除业务层中使用new的方式创建的dao对象
3     private BookDao bookDao;
4  
5     public void save() {
6         System.out.println("book service save ...");
7         bookDao.save();
8     }
9     //提供对应的set方法
10     public void setBookDao(BookDao bookDao) {
11         this.bookDao = bookDao;
12     }
13 }
14  
 
  
步骤3:修改配置完成注入
在配置文件中添加依赖注入的配置
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4        xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd">
5     <!--bean标签标示配置bean
6         id属性标示给bean起名字
7         class属性表示给bean定义类型
8     -->
9     <bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/>
10  
11     <bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">
12         <!--配置server与dao的关系-->
13         <!--property标签表示配置当前bean的属性
14                 name属性表示配置哪一个具体的属性
15                 ref属性表示参照哪一个bean
16         -->
17         <property name="bookDao" ref="bookDao"/>
18     </bean>
19  
20 </beans> 
将Dao放到Service里面
 然后就可以运行了,就是需要property这个关系绑定 
注意:配置中的两个bookDao的含义是不一样的
name="bookDao"中bookDao的作用是让Spring的IOC容器在获取到名称后,将首字母大写,前
 面加set找对应的setBookDao()方法进行对象注入
ref="bookDao"中bookDao的作用是让Spring能在IOC容器中找到id为bookDao的Bean对象给
 bookService进行注入
 综上所述,对应关系如下:

步骤4:运行程序
运行,测试结果为:



















