依赖倒置、依赖注入和控制反转傻傻分不清楚?

依赖倒置#

啥是依赖倒置?依赖倒置是SOLID原则之一,词的字面意思就是将依赖关系的倒置。git

其实依赖倒置你们早就会了,这个实际上就是面向接口编程。举个例子,如今电子产品更新换代快,可能没过多久我们就想换一台电脑玩玩。即便电脑的品牌不一样,但咱们仍是能够正常使用,总不会换个牌子就不会用了吧。spring

因此若是用代码表示的话,咱们用接口IPC来代替具体的类,而后各个类去实现它的programming方法。数据库

Copypublic interface IPC{
    void programming();
}

public class User {
    private IPC pc;
	//若是写成private Dell dell;
    //那咱们换成联想的电脑就麻烦了
    public User(IPC pc) {
        this.pc = pc;
    }
    public void usePC(){
        pc.programming();
    }
}

为啥叫它倒置呢,由于编程

 

 

是否是箭头倒过来了呢架构

依赖注入与控制反转#

依赖注入是实现控制反转的具体手段,这俩听起来高大上,其实...框架

Copypublic class Main {
    public static void main(String[] args) {
        //建立对象
        Dell dell=new Dell();
        //依赖注入
        User user=new User(dell);
        user.usePC();
    }
}

依赖注入指的是不在类内部使用new来建立依赖对象,而是将其在外部建立好后,经过构造函数或者赋值函数注入进类中,也就是当参数传进去。函数

而控制反转就是依赖注入中说的,将依赖类实例化的控制权交给外部逻辑处理。我不心系你这东西的建立,我只关心你提供的功能,一切都按个人标准指定好,拿来用就行。学习

好比咱们笔记本电脑的各个部分是不一样厂家生产的,笔记本电脑厂商只需把标准给各个零件生产商,让他们按要求生产,本身最后组装拿来用就行了。这样咱们就达到了解耦的目的。优化

控制反转容器#

由于咱们在程序设计时采用了依赖注入,那么不可避免的,咱们要在程序里写大量的new。但对象的建立与依赖注入跟具体的业务并没有关系,咱们可不能够将其抽象成框架呢?this

因而咱们就有了IOC容器或者说依赖注入框架,只须要简单配置一下就能够由框架自动建立对象、管理对象以及依赖注入这些本来须要咱们本身来作的事情。


SpringIOC知识导图

这是我整理的关于springIOC的相关知识点,由于我的缘由,没有详细的展开进行整理,可是,只有本身整理的东西才是本身的,你们能够根据本身的状况进行整理,造成本身的东西,

 

而除了ioc以外,AOP也是一个不能忽略的问题

 

可能光有这张图对于初学者或者基础不是特别扎实的人来讲,补充起来有那么一点困难,不要紧,文档资源奉上


目录

第一部分

第1章Spring 总体架构和环境搭建

第2章容器的基本实现

第3章默认标签的解析

第4章自定 义标签的解析

第5章bean 的加载

第6章容器的功能扩展

第7章AOP

 

 

第二部分

第8章数据库链接 JDBC

第9章整合MyBatis

第10章事务

第11章SpringMVC

第12章远程服务

第13章Spring 消息

 

第三部分

第14章Spring Boot体系原理

 

 

详细展现

代码详解

 

源码支持

 

须要这份优化思惟导图以及上面的知识图的老铁,添加小助手:msbxq2020免费获取,同步的还有相关的视频讲解以及学习文档,还不快点行动

关注公众号:Java架构师联盟,每日更新技术好文

部分资料已经上传到个人git仓库中:有须要的能够下载

相关文章
相关标签/搜索