spring的IOC

DI:依赖注入,一个BookService类的功能需要依赖另外一个BookDao类配合,同时需要赋上一
个具体的对象,则成这种关系是依赖注入;
IOC:控制反转,以前依赖的对象自己直接new,现在不需要new,框架会自动注入对象,创建对
象的权利转移给了框架;
spring框架负责所有对象的创建、管理和依赖注入;所有的对象存储的容器叫做IOC容器;
1. 创建项目,导入 spring jar

 2.按照目录结构创建接口及其实现类

 servlet

public class BookServlet {
BookService bookService;
@Test
public void add() {
System.out.println("BookServlet...add");
bookService.save();
}
}
service
//接口
public interface BookService {
void save();
}
//实现类
public class BookServiceImpl implements BookService {
private BookDao bookDao;
@Override
public void save() {
System.out.println("BookServiceImpl...save");
bookDao.insert();
}
}
dao
//接口
public interface BookDao {
public void insert();
}
//实现类
public class BookDaoImpl implements BookDao {
@Override
public void insert() {
System.out.println("BookDaoImpl...save");
}
}
3. 使用 spring 完成 IOC 的配置和 DI 依赖注入
创建 spring 的核心配置文件
BookServiceImpl 需要给 bookDao 属性设置 setter 方法,框架才能自动注入
bean 标签表示把对应 class 的对象创建到 IOC 容器中,如果当前对象有依赖的其他对象,那么可以
通过 property 对依赖的对象使用 ref 引用容器中已经注册过的对象。

service BookServiceImpl

public class BookServiceImpl implements BookService {
private BookDao bookDao;
;
}
@Override
public void save() {
System.out.println("BookServiceImpl...save");
bookDao.insert();
}
}
servlet 中进行测试
1. 首先获取 IOC 的容器;
2. 从容器中获取 bookService 对象;
3. 执行方法: servlet 执行 ---service 执行,由于 spring 完成了依赖注入 ------dao 层执行
public class BookServlet {
BookService bookService;
@Test
public void add() {
System.out.println("BookServlet...add");
//1.获得IOC容器
ClassPathXmlApplicationContext context=new
ClassPathXmlApplicationContext("spring.xml");
//2.根据名字从容器中获取对象
bookService= (BookService) context.getBean("bookService");
bookService.save();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值