目录
1、为什么要学习Spring?
2、Spring是什么?
1、IoC是什么?
2、进一步通过代码演示理解IoC
3、怎么理解容器?
4、知道DI与IoC的区别?
1、为什么要学习Spring?
我们常说的Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架。
为什么要学习框架?
学习框架就相当于从一个“小作坊”到“工厂”的升级,小作坊什么都要自己做,工厂是已经将基本器件配备好了,所以使用更加方便高效。在这里,我们之前使用Servlet的方式就相当于“小作坊”,Spring就相当于“工厂”。
理解Servlet和Spring的区别?
(1)创建方式上
(2)URL地址上
(3)在新增一个路径上
(4)doGet与doPost方法上
(5)引入数据库的方式
(6)发布项目
2、Spring是什么?
Spring ⽀持⼴泛的应⽤场景,它可以让 Java 的应⽤程序开发起来更简单。⽤⼀句话概括 Spring:Spring 是包含了众多⼯具⽅法的 IoC 容器。这里有两个词,一个是IoC,一个是容器。怎么理解呢?
1、IoC是什么?
1、 IoC = Inversion of Control 翻译成中⽂是“控制反转”的意思,也就是说 Spring 是⼀个“控制反转”的容器。
比如:dao对象之前由A来管理,用的时候new出来,现在用Spring来管理,用的时候直接从Spring中来获取。相当于自动驾驶,之前手动开车的控制权在于司机,现在车的控制权在于自动驾驶的引擎。
2、进一步通过代码演示理解IoC
IoC是一个思想,实现方式有很多。
(1)传统方式程序开发
如果⾃⼰创建下级类就会出现当下级类发⽣改变操作,⾃⼰也要跟着修改。解决传统开发方式的办法就是:控制反转式程序开发,最大的特点也就是解耦。
(2)控制反转式程序开发
此时,我们只需要将原来由⾃⼰创建的下级类,改为传递的⽅式(也就是注⼊的⽅式),因为我们不需要在当前类中创建下级类了,所以下级类即使发⽣变化(创建或减少参数),当前类本身也⽆需修改任何代码,这样就完成了程序的解耦。(感受两种代码之间的区别)
3、怎么理解容器?
容器我们都知道,就是用来装东西的,比如水杯就是用来装水的,我们所学的Tomcat就是用来装web服务的。那么对于一个容器来说,就可以将一个对象存入到容器中,也可以从容器中取出该对象。因此对于Spring来说最核心的功能就是将对象存入到Spring,再从Spring中获取该对象。
所以我们主要学习Spring的存和取。
这也可以从我们上面1/2点中的代码看出:方式2中就是一个将对象存在容器中的过程:将对象存储到IoC容器中,在需要的时候直接取就好了;但是方式1是new对象的方式,每次需要的时候再new出来,下次再用的时候还要再重新做。这也就是IoC容器和普通容器的区别。
4、知道DI与IoC的区别?
IoC是一种思想,而DI是一种实现。
DI 是 Dependency Injection 的缩写,是“依赖注⼊”。
依赖注入:就是IoC容器在运行期间,动态的将某种依赖关系注入到对象中。所以IoC与DI是从不同的角度描述同一件事,就是指通过引入IoC容器,利用依赖关系注入的方式,实现对象之间的解耦。
比如下面的代码就是依赖注入:
继续学习!