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

Spring核心——控制反转(IoC)、依赖注入(DI)

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

Spring核心——控制反转(IoC)、依赖注入(DI)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Spring核心概念
  • 什么是IoC(Inversion of Control)
    • 代码现状
    • 存在问题——耦合度过高
    • 解决方案
    • IoC——控制反转
  • Spring实现IoC
    • IoC容器
    • Bean
    • DI (Dependency Injection)——依赖注入
  • 总结
    • 目标:充分解耦
      • 1、IoC
      • 2、DI
    • 最终效果


什么是IoC(Inversion of Control) 代码现状

编写一个业务层实现类,实现业务层接口,在里边创建数据层接口并给出数据层的实现,并调对应的操作:

存在问题——耦合度过高

当想要替换数据层的实现时,如:

一旦修改,源代码也修改,意味着需要重新编译、测试等等。
正因为在 类 里边写了其他的一些实现,便导致代码的耦合度偏高

解决方案

既然是因为写了该实现导致耦合度偏高,那就不写?

此时的业务层代码:

public class UserServiceImpl implements UserService {

    private UserDao userDao;

    public void save(){
        userDao.save();
    }
}

但此时程序没有实现对象,运行不起来!
那没有对象怎么办?那就外部给它一个对象!

即:
使用对象时,不要主动new一个对象,而是由外部提供一个对象。

IoC——控制反转

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


Spring实现IoC IoC容器

spring提供了一个容器,成为IOC容器,也就是IOC思想中的“外部”

Bean

IOC容器中存放了大量对象,它管理对象的创建、初始化等等工作,这些对象,在IOC容器中,统称Bean。

DI (Dependency Injection)——依赖注入

在容器中建立bean与bean之间的依赖关系的过程

在之前的业务代码中,service运行是依赖dao对象的,仅仅造了service对象依旧无法运行。
既然service与dao之间存在依赖关系(并不是随便将几个对象绑定,而是它们之间存在依赖关系),而它俩又都在IOC容器中。

于是,IOC容器把service与dao之间的依赖关系绑定,这样一来,容器将service对象给过去,绑定的dao对象也有了,也可以直接使用了!

绑定关系的过程,便是依赖注入。

总结 目标:充分解耦 1、IoC

使用IOC容器管理bean

2、DI

在IOC容器内将有依赖关系的bean进行关系绑定

最终效果

①使用对象时可直接从IOC容器中获取。
②获取到的bean已经绑定了所有依赖关系

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/918597.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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