Spring中IOC与DI的的区别
2021-07-02 17:04
标签:存在 err src inter 图片 分享 实现 spring 复用 有IOC的环境,也就是将必须对象的创建权交给了Spring. Dependency Injection 依赖注入.需要有IOC 的环境,Spring 创建这个类的过程中,Spring 将类的依赖的属性设置进去. IOC: 控制反转,将类的对象的创建交给Spring类管理创建. 这样做得好处:做到了单一职责,并且提高了复用性,解耦了之后,任你如何实现,使用接口的引用调用的方法,永远不需要改变 举一个栗子: 写个接口,说咱们购物去~ 在实现它两下:有钱人购物,没钱人购物 - -!这栗子举的 然后我们出去玩,顺便shopping一下吧~ 将想用的实现方式,用容器注入进来,这里就模拟下下怎么注入: 测试一下: 结果是: Drive By Benz 如果再依赖注入的配置时,配置为穷人的实现,那我们的代码都不用变,结果就会改变~ Spring中IOC与DI的的区别 标签:存在 err src inter 图片 分享 实现 spring 复用 原文地址:https://www.cnblogs.com/jiangzhaowei/p/9629683.html依赖注入的前提:
DI 介绍
IOC与DI的的区别:
DI: 依赖注入,将类里面的属性在创建类的过程中给属性赋值.
DI和IOC的关系: DI不能单独存在,DI需要在IOC的基础上来完成.public interface IShopping {
void drive();
String Money();
}
public class RichMan implements IShopping{
@Override
public void drive() {
System.out.println("Drive By Benz");
}
@Override
public String Money() {
System.out.println("lot`s of money");
return "10000";
}
}
public class PoorGuy implements IShopping{
@Override
public void drive() {
System.out.println("take a walk!");
}
@Override
public String Money() {
System.out.println("nothing");
return "1";
}
}
public class Play {
private IShopping shoppingSomething;
//使用构造方法,将实现传入
public Play(IShopping shoppingSomething){
this.shoppingSomething = shoppingSomething;
}
public void withgirlFriend(){
shoppingSomething.drive();
shoppingSomething.Money();
}
}public class Containner {
public Play getShopping(){
return new Play(new RichMan());
}
}
public static void main(String[] args) {
Containner containner = new Containner();
Play play = containner.getShopping();
play.withgirlFriend();
}
lot`s of money