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