入门案例思路分析
(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
2
5
9
10
11
12
13
17
18
19
20
将Dao放到Service里面
然后就可以运行了,就是需要property这个关系绑定
注意:配置中的两个bookDao的含义是不一样的
name=”bookDao”中bookDao的作用是让Spring的IOC容器在获取到名称后,将首字母大写,前
面加set找对应的setBookDao()方法进行对象注入
ref=”bookDao”中bookDao的作用是让Spring能在IOC容器中找到id为bookDao的Bean对象给
bookService进行注入
综上所述,对应关系如下:
步骤4:运行程序
运行,测试结果为:
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net