Ioc:控制反转(Inversion of Control)
正常情况下:我们主动通过new等方式创建对象
spring情况下:我们通过注解(@postConstant等)将对象放进对象容器,然后通过注解(@autowired等)引用对象(对象有spring创建和管理,创建过程从之前的主动变成被动--称之为控制反转)
DI:依赖注入(Dependency Injection)
上述过程中,通过注解等拿到对象,我们就称之为依赖注入,即将所需要的依赖(需求类)注入到代码中
可以通过下面的例子深入理解:
一:普通模式
当一个人需要某个产品的时候,需要自己去制造这个产品,然后使用这个产品
二:工厂模式
当一个人需要某个产品的时候,需要找到制造这个产品的工厂,然后通过销售渠道购买取到这个产品再然后使用
三:spring模式
当一个人需要某个产品的时候,他直接去找中介(spring)说他需要某个产品,然后中介(spring)在自己管理的资源池(ioc/di管理的类)中取出产品给到需求方使用