DI入门案例
DI入门案例
思路分析
- 基于IoC管理bean
- Service中使用new形式创建的Dao对象是否保留?(否)
- Service中需要的Dao对象如何进入到Service?(提供方法)
- Service与Dao间的关系如何描述?(配置)
DI入门案例(XML版)
-
删除使用new的形式创建对象的代码
-
提供依赖对象对应的setter方法
public class BookServiceImpl implements BookService { // 5. 删除业务层中使用new的方式创建的dao对象 //private BookDao bookDao = new BookDaoImpl(); private BookDao bookDao; @Override public void save(){ System.out.println("book service save..."); bookDao.save(); } // 6. 提供对象的set方法 public void setBookDao(BookDao bookDao) { this.bookDao = bookDao; } }
-
配置service与dao之间的关系对应关系说明:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--1.导入spring的坐标spring-context, 对应版本是5.2.10.RELEASE--> <!--2.配置bean--> <!--bean标签表示配置bean id属性表示给bean起名字 class属性表示给bean定义类型--> <bean id="bookDao" class="com.charley.dao.impl.BookDaoImpl"/> <bean id="bookService" class="com.charley.service.impl.BookServiceImpl"> <!--7. 配置service与dao的关系--> <!--property标签表示配置当前bean的属性 name属性表示配置哪一个具体的属性 ref属性表示参照哪一个bean--> <property name="bookDao" ref="bookDao"/> </bean> </beans>