概念
1.什么是IOC
Inversion of control即控制反转,一种设计思想,也是一个目标。有两个优点:解耦;屏蔽对象的实现细节。
2.什么是DI
全称为:Dependency Injection,由容器动态的将某个依赖的关系注入到组件之中。容器创建好实例后再注入调用者称为依赖注入。
3.IOC和DI的联系
IOC是一种设计思想,DI是实现的技术。
谁依赖谁:应用程序依赖于IOC容器;
为什么需要依赖:应用程序需要IOC容器来提供对象需要的外部资源;
谁注入谁:IOC容器注入应用程序某个对象,应用程序依赖的对象;
注入了什么:注入某个对象所需要的外部资源(包括对象、资源、常量数据)
内置IOC
内置IOC有三种生命周期
1.Transient
瞬时生命周期,每次请求会创建一个对象,适用于轻量级无状态的服务
2.Scoped
每次web请求被创建,局部单例对象,在某个局部内是同一个对象(作用域单例,本质是容器单例);一次请求内的是一个单例对象,多次请求则多个不同的单例对象
3.Singleton
在第一次请求时创建,每个请求会使用同一个实例。