Spring(1)

目录

一:Spring

1:Spring是什么

1.1什么是容器

1.2什么是IoC?

1.2.1 传统程序开发

1.2.2 IoC程序开发

 1.3理解Spring IoC

1.4 DI:依赖注入


一:Spring

1:Spring是什么

Spring:Spring是包含了众多工具方法的IOC容器.

1.1什么是容器

1.2什么是IoC?

IoC:"控制反转"===Spring是一个包含众多工具的"控制反转"的容器.

        将对象的生命周期进行控制反转.

1.2.1 传统程序开发

代码如下:

public class Car {
    private Framework framework;
    public Car(){
        framework=new Framework();
    }
    public void init(){
        //依赖车身
        framework.init();
    }
}
public class Framework {
    private Bottom bottom;
    public Framework(){
        bottom=new Bottom();
    }
    public void init(){
        //依赖底盘
        bottom.init();
    }
}
public class Bottom {
    public Tire tire;
    public Bottom(){
        tire=new Tire();
    }
    public void init(){
        //依赖轮胎
        tire.init();
    }
}
public class Tire {
    public int  size=20;
    public void init(){
        System.out.println("执行了轮胎的初始化方法,size: "+this.size);
    }
}

public class App {
    public static void main(String[] args) {
        Car car=new Car();
        car.init();
    }
}

传统的程序开发:以上述代码为例,一个类依赖一个类,依次往上进行依赖,最底层的类的属性改了,全部都得改.===扩展性差,耦合度高,当Tire修改之后->Bottom进行修改->FrameWork进行修改->Car进行修改

1.2.2 IoC程序开发

IoC解决传统程序开发,让耦合度降低.低耦合

Tire进行修改,其他所依赖的类不用发生改变.

public class Tire {
    private int size=20;
    public Tire (int size){
      this.size=size;
    }
    public void init(){
        System.out.println("轮胎---size: "+size);
    }
}
public class Botton {
    private Tire tire;
    public Botton(Tire tire){
        this.tire=tire;
    }
    public void init(){
        System.out.println("执行 Bottom");
        tire.init();
    }
}
public class Framework {
    private Botton bottom;
    public Framework(Botton bottom){
        this.bottom=bottom;
    }
    public void init(){
        System.out.println("执行 framework");
        bottom.init();
    }
}
public class Car {
    public Framework framework;
    public Car(Framework framework){
        this.framework=framework;
    }
    public void init(){
        System.out.println("car执行完了");
        framework.init();
    }
}
public class App {
    public static void main(String[] args) {
        Tire tire=new Tire(30);
        Botton botton=new Botton(tire);
        Framework framework=new Framework(botton);
        Car car=new Car(framework);
        car.init();
    }
}

两组代码进行比对: 

当Tire类发生改变:假设,我们要改变轮胎的颜色,看所依赖的前面的类会不会发生改变?

public class Tire {
    private int size=20;
    private String color;
    public Tire (int size,String color){
      this.size=size;
      this.color=color;
    }
    public void init(){
        System.out.println("轮胎---size: "+size+"轮胎颜色---color:"+color);
    }
}

  我们会发现,当将最底层的类进行改变之后,其他所依赖的类并没有因为最底层依赖类改变而改变.对于生命周期进行托管

以App的角度进行解释 

 1.3理解Spring IoC

Spring是一个包含了很多工具的IoC容器.

Spring的核心功能,就是学如何将对象存入到Spring中,再从Spring中获取对象过程.

Spring是一个控制反转的容器,具备两个最基础的功能.

1:将对象存入到容器

2:从容器中取出对象

1.4 DI:依赖注入

                                          IoC是一个思想,DI是IoC的一种实现方式.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DJ懒羊羊。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值