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

相关文章
|
Java Spring 容器
spring之HttpInvoker
  一、HttpInvoker是常用的Java同构系统之间方法调用实现方案,是众多Spring项目中的一个子项目。顾名思义,它通过HTTP通信即可实现两个Java系统之间的远程方法调用,使得系统之间的通信如同调用本地方法一般。
2463 0
|
5月前
|
XML Java 数据库连接
|
Java Spring 容器
|
6月前
|
存储 设计模式 Java
【Spring】——Spring简单 读和取(二)
【Spring】——Spring简单 读和取
62 0
【Spring】——Spring简单 读和取(二)
|
Java Spring 容器
Spring中那些BeanFactoryPostProcessors详解(一)
Spring中那些BeanFactoryPostProcessors详解(一)
53 0
|
XML Java 程序员
|
XML Java 数据格式
Spring详细总结2
Spring详细总结2
293 0
Spring详细总结2
|
XML Java 程序员
Spring详细总结3
Spring详细总结3
217 0
Spring详细总结3
|
Java Spring
Spring OrderUtils详解
《读尽源码》
219 0
|
存储 Java 测试技术
Spring-AliasRegistry
使用Spring 的时候我们可以很容易的为某个bean 配置一个或多个别名
190 0