java反向注入_java 控制反转和依赖注入的理解
开始好好学习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 控制反转和依赖注入的理解相关推荐
- java 反转 控制 注入_控制反转和依赖注入
全2册git版本控制管理(第2版)+ 99.8元 包邮 (需用券) 去购买 > 控制反转(Inversion of Control)即IoC,是一种模式,Spring的核心概念. 依赖注入(De ...
- php程序设计依赖注入_PHP控制反转和依赖注入
[TOC] PHP和依赖注入 理论知识 要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversio ...
- Spring容器,控制反转,依赖注入
Spring boot学习之旅,为更好督促自己学习以记之,仅供参考. spring容器 程序启动的时候会创建spring容器,扫描给spring容器一个清单,比如:@Controller, @Bean ...
- Java之控制反转和依赖注入
1.简介 依赖注入和控制反转,目的是为了使类与类之间解耦合,提高系统的可扩展性和可维护性,下面通过一个例子来引入这一概念. 2.案例 1)一般情况下的类耦合 Main.java public clas ...
- Java 控制反转和依赖注入模式【翻译】【整理】
Inversion of Control Containers and the Dependency Injection pattern --Martin Fowler 本文内容 Component ...
- java json injection_Java Web实现IOC控制反转之依赖注入
控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心. 控制反转一般分为两种类型,依赖注入 ...
- IOC控制反转(依赖注入思想)
IOC控制反转(依赖注入思想) 获取map 类型的 request session application 的方法: 实现RequestAware,SessionAware,ApplicationAw ...
- 如何理解控制反转和依赖注入
如何理解控制反转和依赖注入 文章目录 如何理解控制反转和依赖注入 前言 一.什么是控制反转 1.何为依赖关系 2.进行控制反转的前的一些准备 3.控制反转的简单实现 2.1:实现代码 二.什么是依赖注 ...
- SSM框架—Spring基础—控制反转和依赖注入(概念)
控制反转: 控制反转(IoC)是面向对象编程的一个设计原则,用于降低代码耦合度 在传统面向对象编程中,获取对象的方式是用关键字"new"主动创建一个对象,也就是说,应用程序掌握着对 ...
最新文章
- Bash,Vim,gdbgit常用命令
- php汉字的截取,php汉字截取
- python生成激活码
- iOS常用宏定义大全
- Unity3D学习(五):实现一个简单的视觉感知
- C#之app.config、exe.config和vshost.exe.config作用区别
- 程序员为什么要少写代码?
- NFC的实用性有多高,真的是刚需吗?
- win7下ngnix mysql php的安装_windows7下nginx +mysql+多版本PHP共存安装方法
- 关于Oracle-SQL语句性能优化
- http服务详解(2)——httpd2.2的配置文件常见设置
- 进程调度算法比较例题
- php中控车牌识别push协议,2、实时车牌识别上传及返回
- 微分方程求解二(偏微分方程求解)
- 医疗行业源代码该如何保密
- 新百家姓前20位(附前300名)
- 逆向之制作扫雷外挂——003
- 计算机运行很卡很慢,PS打开很卡怎么办?电脑太老PS运行慢如何优化?
- macunity日志目录_Mac升级10.13需谨慎,Unity不显示资源的解决办法
- 测试工程师面试汇总【完美世界】
热门文章
- va_list/va_start/va_arg/va_end深入分析
- 谷歌TensorFlow Lite支持Core ML
- TensorFlow, PyTorch, Caffe2的比较
- C++四种强制类型转换 dynamic_cast,const_cast,static_cast,reinterpret_cast
- 一文弄懂java中的Queue家族
- 服务器如何安装多系统,服务器如何安装双操作系统
- MySQL(一)MySQL基础介绍
- STL泛型编程之迭代器
- Leecode11. 盛最多水的容器——Leecode大厂热题100道系列
- [leetcode] 912.排序数组