栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

IoC控制反转

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IoC控制反转

IoC控制反转 核心概念 1. IoC(Inversion of Control)控制反转

使用对象时,由主动new产生对象转换成,从外部提供对象,在这个过程中,对象的创建控制权由程序转移到外部,此思想称为控制反转。

2. DI(Dependency Injection)依赖注入

在容器中建立bean与bean之间的依赖关系的整个过程,成为依赖注入。

3. Spring技术对IoC思想进行了实现

Spring提供了一个容器,称为IoC容器,用来充当IoC思想的外部。
IoC容器负责对象的搭建,初始化一系列工作,被创建或者被管理的对象在IoC容器中统称为Bean。
目标:充分解耦
使用IoC容器管理Bean(IoC)。
在IoC管理容器内将有依赖关系的Bean进行关系绑定(DI)。
最终效果:使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean 已经绑定了所以的依赖关系。
Demo:

当代码需要修改时,需要重新修改代码,编译程序,并部署发布,非常耗时废力。代码书写现状:耦合度偏高
解决方案:使用对象时,在程序中不要主动使用new产生对象,转换为由外部提供对象。
IoC(Inversion of Control)控制反转
对象的创建权由程序转移到外部,这种思想称为控制反转。

4. IoC入门案例思路分析:
  1. 管理什么?(Service与Dao)
  2. 如何将被管理的对象告知IoC容器?(配置)
  3. 被管理的对象交给IoC容器,如何获取到IoC容器?(接口)
  4. IoC容器得到后,如何从容器中获取bean?(接口方法)
  5. 使用Spring导入哪些坐标?(pom.xml)
5. DI入门案例思路分析:
  1. 基于IoC管理bean
  2. Service中使用new形式创建的Dao对象是否保留?(否)
  3. Service中需要的Dao对象如何进入到Service中?(提供方法)
  4. Service与Dao间的关系如何描述?(配置)
6. 项目结构

附录 1. pol.xml

    
        org.springframework
        spring-context
        5.2.10.RELEASE
    

2. applicationContext.xml





   
    

3. APP.java
//3.获取IoC容器
ApplicationContext ctx =new ClassPathXmlApplicationContext("applicationContext.xml");
//4.获取bean
BookDao bookDao=(BookDao) ctx.getBean("bookDao");
bookDao.save();
BookService bookService=(BookService) ctx.getBean("bookService");
bookService.save();
4. BookServiceImpl.java
//5.使用业务层中使用new的方式创建的dao对象
private BookDao bookDao;
//6.提供对应的Set方法
public void setBookDao(BookDao bookDao) {
    this.bookDao = bookDao;
}
public void save(){
    System.out.println("book service save ...");
    bookDao.save();
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/872691.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号