> 文章列表 > Spring入门案例--DI入门案例

Spring入门案例--DI入门案例

Spring入门案例--DI入门案例

入门案例思路分析

(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标签标示配置bean6         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属性表示参照哪一个bean16         -->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:运行程序  

运行,测试结果为: