Spring IOC和DI
IOC(Inversion of Control)控制反转
概述:将对象的控制从自己给spring容器,所以叫控制反转
用来做什么:一般情况下,对象由我们自己创建出来使用
有了spring,在配置文件里面配置好后,交给spring容器管理,在使用时就能直接拿出来使用,不用自己创建
spring配置文件中配置
通过注解直接使用
优点:解除了模块间的强耦合问题。
如果是传统的模式,在大的系统中,对象之间往往互相依赖,如果修改某个地方,那么可能就是牵一发动全身,代码维护十分麻烦
网上看到的这张图可以很好的解释
传统方式
使用spring容器管理
DI(Dependency Injection)依赖注入
概述:IOC的一种类型,在需要使用外部资源(包括对象、资源、常量数据)时注入外部资源
用来做什么:注入需要的资源。当类A需要datasource,根据配置生成一个datasource,生成datasource需要的各种变量(依赖)给(注入)到能生成datasource的类中,生成datasource再注入到A,A就能使用了
优点:解耦
学习的一点理解,如果有错误的地方希望大佬指出