【JavaEE进阶】Spring是什么?掌握IoC和DI的区别

目录

一、认识Spring    

二、什么是IoC

三、什么叫DI

四、总结


一、认识Spring    

         Spring 指的是 Spring Framework( Spring 框架),一句话 概括:Spring是包含了众多工具方法的IoC容器。 其中Spring容器包含了两个最核心的功能:
(1)将 bean (对象) 存入Spring容器中(2)从Spring容器中取出 bean (对象)
       
        Spring 是⼀个 IoC 容器,说的是对象的创建和销毁的权利都交给 Spring 来管理了,它本身⼜具备了存储对象和获取对象的能⼒。
       
        将对象存放到容器中的好处:将对象存储在 IoC 容器相当于将以后可能⽤的所有⼯具制作好都放到仓库中,需要的时候直接取就⾏了,⽤完再把它放回到仓库。⽽ new 对象的⽅式相当于,每次需要⼯具 了,才现做,⽤完就扔掉了也不会保存,下次再⽤的时候还得重新做,这就是 IoC 容器和普通程序开 发的区别。
        

二、什么是IoC

        IoC的含义是控制反转,举个汽车例子可以更好的帮助我们理解何为控制反转。

构建⼀辆⻋(Car Class),然⽽⻋需要依赖⻋身(FrameWork Class),⽽⻋身需要依赖底盘(
Bottom Class),⽽底盘需要依赖轮胎(Tire Class),由上往下一层层实现,见下图所示:

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

   /*
   * 汽车*/
   static class Car{
        public void func(){
            //依赖车身
            FrameWork frameWork =new FrameWork();
            frameWork.func();
        }
    }
    /*
    * 车身*/
   static class FrameWork{
        public void func(){
            //依赖底盘
            Bottom bottom =new Bottom();
            bottom.func();
        }
    }
    /*
    * 底盘*/
   static class Bottom{
        public void func(){
            //依赖轮胎
            Tire tire = new Tire();
            tire.func();
        }
    }
    /*
    * 轮胎*/
   static class  Tire{
        public void func(){
           int size = 20;
            System.out.println("轮胎尺寸:"+size);
        }
    }
}

        一种汽车型号的轮胎尺寸大小是固定的,当需要生产不同尺寸大小的轮胎尺寸时,此时就需要由上到下修改轮胎尺寸参数,十分繁琐。为此我们转换思路,将原来由⾃⼰创建的下级类,改为传递的⽅式(也就是注⼊的⽅式),因为我们不需要在当前类中创建下级类了,所以下级类即使发⽣变化(创建或减少参数),当前类本身也⽆需修改任何代码,这样就完成了程序的解耦。

在传统的代码中对象创建顺序是:Car -> Framework -> Bottom -> Tire
改进之后解耦的代码的对象创建顺序是:Tire -> Bottom -> Framework -> Car
                                                               

IoC容器的优点:实现了代码的解耦,无需关注代码实现的细节

三、什么叫DI

谈到 IoC 控制反转时,这时候就得说起 DI(依赖注入)

       所谓依赖注⼊,就是由 IoC 容器在运⾏期间,动态地将某种依赖关系注⼊到对象之中。所以,依赖注⼊(DI)和控制反转(IoC)是从不同的⻆度的描述的同⼀件事情,就是指通过引⼊ IoC 容
器,利⽤依赖关系注⼊的⽅式,实现对象之间的解耦。
说到这里,我们可以理解为:IoC控制反转是一种思想,而DI依赖注入是一种实现

例子:我今天下午想要去吃海底捞,我想要去干啥,这是一个思想,相当于IoC控制反转

而今天下午我最终去吃了烧烤,这是一个具体的实现,这就是DI依赖注入

四、总结

1、Spring是什么?如何理解Spring?

Spring是包含了众多工具方法的IoC容器,

Spring可以将bean对象存在Spring容器中,同时也可以从Spring容器中取出bean对象。

2、IoC和DI是啥?有啥区别?

IoC 叫作控制反转,DI 叫做依赖注入,IoC是一种目标思想,而DI是一种目标实现

IoC容器的优点:实现了代码的解耦,无需关注代码实现的细节

例如:我下午想要去吃海底捞,最后我选择了去吃麦当劳,这就是思想与实现

3、Spring最核心的功能是什么?

1、将bean对象存在Spring容器中

2、从Spring容器中取出bean对象

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值