Spring(1)

简介: Spring(1)

一: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的一种实现方式.

目录
打赏
0
0
0
0
22
分享
相关文章
spring5系列(三) | 初识spring
spring5系列(三) | 初识spring
178 0
【Spring】 ——初识Spring
【Spring】 ——初识Spring
72 0
【Spring】——Spring简单 读和取(一)
【Spring】——Spring简单 读和取
102 0
【Spring】——Spring简单 读和取(一)
Spring中那些BeanFactoryPostProcessors详解(一)
Spring中那些BeanFactoryPostProcessors详解(一)
104 0
Spring介绍
一个Java应用层程序,是由许多个类组成的,这些类之间必然存在依赖关系,当项目越来越大,依赖关系越来越复杂,需要一个专业的框架来处理类之间的依赖关系,为了解决这个问题,SUN公司推出了EJB(重量级)专门用来解决类的依赖问题
Spring介绍

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等