开始好好学习java基础和思想~

控制反转(IOC)是Spring框架的核心思想,用我自己的话说,就是你要做一件事,别自己可劲new了,你就说你要干啥,然后外包出去就好~

依赖注入(DI) 在我浅薄的想法中,就是通过接口的引用和构造方法的表达,将一些事情整好了反过来传给需要用到的地方~

这样做得好处:做到了单一职责,并且提高了复用性,解耦了之后,任你如何实现,使用接口的引用调用的方法,永远不需要改变

举一个栗子:

写个接口,说咱们购物去~

public interfaceIShopping {voiddrive();

String Money();

}

在实现它两下:有钱人购物,没钱人购物     - -!这栗子举的

public class RichMan implementsIShopping{

@Overridepublic voiddrive() {

System.out.println("Drive By Benz");

}

@OverridepublicString Money() {

System.out.println("lot`s of money");return "10000";

}

}

public class PoorGuy implementsIShopping{

@Overridepublic voiddrive() {

System.out.println("take a walk!");

}

@OverridepublicString Money() {

System.out.println("nothing");return "1";

}

}

然后我们出去玩,顺便shopping一下吧~

public classPlay {privateIShopping shoppingSomething;

//使用构造方法,将实现传入publicPlay(IShopping shoppingSomething){this.shoppingSomething =shoppingSomething;

}public voidwithgirlFriend(){

shoppingSomething.drive();

shoppingSomething.Money();

}

}

将想用的实现方式,用容器注入进来,这里就模拟下下怎么注入:

public classContainner {publicPlay getShopping(){return new Play(newRichMan());

}

}

测试一下:

public static voidmain(String[] args) {

Containner containner= newContainner();

Play play=containner.getShopping();

play.withgirlFriend();

}

结果是:

Drive By Benz

lot`s of money

如果再依赖注入的配置时,配置为穷人的实现,那我们的代码都不用变,结果就会改变~   嗯,应该理解了。

java反向注入_java 控制反转和依赖注入的理解相关推荐

  1. java 反转 控制 注入_控制反转和依赖注入

    全2册git版本控制管理(第2版)+ 99.8元 包邮 (需用券) 去购买 > 控制反转(Inversion of Control)即IoC,是一种模式,Spring的核心概念. 依赖注入(De ...

  2. php程序设计依赖注入_PHP控制反转和依赖注入

    [TOC] PHP和依赖注入 理论知识 要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversio ...

  3. Spring容器,控制反转,依赖注入

    Spring boot学习之旅,为更好督促自己学习以记之,仅供参考. spring容器 程序启动的时候会创建spring容器,扫描给spring容器一个清单,比如:@Controller, @Bean ...

  4. Java之控制反转和依赖注入

    1.简介 依赖注入和控制反转,目的是为了使类与类之间解耦合,提高系统的可扩展性和可维护性,下面通过一个例子来引入这一概念. 2.案例 1)一般情况下的类耦合 Main.java public clas ...

  5. Java 控制反转和依赖注入模式【翻译】【整理】

    Inversion of Control Containers and the Dependency Injection pattern --Martin Fowler 本文内容 Component ...

  6. java json injection_Java Web实现IOC控制反转之依赖注入

    控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心. 控制反转一般分为两种类型,依赖注入 ...

  7. IOC控制反转(依赖注入思想)

    IOC控制反转(依赖注入思想) 获取map 类型的 request session application 的方法: 实现RequestAware,SessionAware,ApplicationAw ...

  8. 如何理解控制反转和依赖注入

    如何理解控制反转和依赖注入 文章目录 如何理解控制反转和依赖注入 前言 一.什么是控制反转 1.何为依赖关系 2.进行控制反转的前的一些准备 3.控制反转的简单实现 2.1:实现代码 二.什么是依赖注 ...

  9. SSM框架—Spring基础—控制反转和依赖注入(概念)

    控制反转: 控制反转(IoC)是面向对象编程的一个设计原则,用于降低代码耦合度 在传统面向对象编程中,获取对象的方式是用关键字"new"主动创建一个对象,也就是说,应用程序掌握着对 ...

最新文章

  1. Bash,Vim,gdbgit常用命令
  2. php汉字的截取,php汉字截取
  3. python生成激活码
  4. iOS常用宏定义大全
  5. Unity3D学习(五):实现一个简单的视觉感知
  6. C#之app.config、exe.config和vshost.exe.config作用区别
  7. 程序员为什么要少写代码?
  8. NFC的实用性有多高,真的是刚需吗?
  9. win7下ngnix mysql php的安装_windows7下nginx +mysql+多版本PHP共存安装方法
  10. 关于Oracle-SQL语句性能优化
  11. http服务详解(2)——httpd2.2的配置文件常见设置
  12. 进程调度算法比较例题
  13. php中控车牌识别push协议,2、实时车牌识别上传及返回
  14. 微分方程求解二(偏微分方程求解)
  15. 医疗行业源代码该如何保密
  16. 新百家姓前20位(附前300名)
  17. 逆向之制作扫雷外挂——003
  18. 计算机运行很卡很慢,PS打开很卡怎么办?电脑太老PS运行慢如何优化?
  19. macunity日志目录_Mac升级10.13需谨慎,Unity不显示资源的解决办法
  20. 测试工程师面试汇总【完美世界】

热门文章

  1. va_list/va_start/va_arg/va_end深入分析
  2. 谷歌TensorFlow Lite支持Core ML
  3. TensorFlow, PyTorch, Caffe2的比较
  4. C++四种强制类型转换 dynamic_cast,const_cast,static_cast,reinterpret_cast
  5. 一文弄懂java中的Queue家族
  6. 服务器如何安装多系统,服务器如何安装双操作系统
  7. MySQL(一)MySQL基础介绍
  8. STL泛型编程之迭代器
  9. Leecode11. 盛最多水的容器——Leecode大厂热题100道系列
  10. [leetcode] 912.排序数组